linux下apache开启url重写的方法(详细说明)
程序员文章站
2023-11-26 12:37:16
linux开启url重写的方法: 1、打开 apache 里httpd.conf(通常是在/etc/httpd/conf目录里) 2、找到 #loadmodule rewr...
linux开启url重写的方法:
1、打开 apache 里httpd.conf(通常是在/etc/httpd/conf目录里)
2、找到 #loadmodule rewrite_module modules/mod_rewrite.so 去掉前面的#
3、找到 allowoverride none 改成 allowoverride all , 有两个全部改掉
注:allowoverride 的参数设置为all,表示整台服务器上都支持url规则重写。apache 服务器要读每个网站下目录下的 .htaccess 文件。如果没有这个文件,或者这个文档没有定义任何关于url重写的规则就不会有任何效果。
重启apache (用命令:service httpd restart)。
apache开启url重写功能方法详细篇
1、关于rewrite模块的调用:
apache 2.x 中url重写,是通过mod_rewrite.so 来实现的,所以您要查看您的apache 是否已经被编译进去这个模块了,并且在apache的配置文件httpd.conf 中已经调用了这个模块。在大多数主流发行版中,apache 2.x 是把rewrite模块已经编入进去了。比如我用的是slackware。apache 2.x的配置文件,放在 /etc/httpd 目录下。
在 httpd.conf 中,我们会发现类似如下的一行,是有关rewrite模块的,模块名是 mod_rewrite.so 。
loadmodule rewrite_module lib/httpd/modules/mod_rewrite.so
或
loadmodule rewrite_module lib/apache2/modules/mod_rewrite.so 如果前面有#号,您要去掉。对于大多数发行版来说,apache 2的模块一般是位于如下的两个位置
/usr/lib/apache2/modules
或
/usr/lib/httpd/modules 如果在httpd中打开调用rewrite_module的设置,查看一下是不是能调用了,要通过 httpd -m的参数来查看;
#/usr/sbin/httpd -m
如果发现有如下一行,说明模块已经能被调用了
rewrite_module (shared)
2、设置documentroot的directory:
在apache 2.x 中,我们会看到 documentroot设置的一行。这行就是存放网页程序的地方。比如linuxsir.org 存放在 /opt/www 目录中。那么我们就要设置 documentroot为如下的。
documentroot "/opt/www" 然后我们再还要对 documentroot做针对性的行为设置。在一般的情况下,httpd.conf 会给一个默认的。如果你要改 documentroot的路径,同时也要改针对documentroot的directory的设置,也就是
<directory "documentroot所设置的路径">
比如我们把documentroot的路径改为了 "/opt/www",那我们也要把directory做针对性的行为设置也要改成这个路径。
<directory "/opt/www">
options followsymlinks
#allowoverride none 注:把这行前面加#号,然后加下面的一行 ,也就是 allowoverride all
allowoverride all
order allow,deny
allow from all
</directory> 我们把allowoverride 的参数设置为all,表示整台服务器上的,都支持url规则重写。apache 服务器要读每个网站根目录下的 .htaccess 文件。如果没有这个文件,或者这个文档没有定义任何关于url重写的规则,则不会有任何效果。在一般的情况下,成熟的web 服务器应用套件,都支持url重写的,比如drupal和joomla 。当我们用这些程序时,会发现在安装包中有 .htaccess中有这个文件。我们把apache配置好后,只是需要在这些程序的后台打开此功能就行了。
3、重启httpd服务器:
在一般情况下,在各个发行版中,都有httpd服务器启动脚本,比如
# /etc/rc.d/rc.httpd restart 注:slackware linux
# /etc/init.d/apache2 restart 注:ubuntu、debian 等;
# /etc/init.d/httpd start 注:fedora 、redhat、centos
1、打开 apache 里httpd.conf(通常是在/etc/httpd/conf目录里)
2、找到 #loadmodule rewrite_module modules/mod_rewrite.so 去掉前面的#
3、找到 allowoverride none 改成 allowoverride all , 有两个全部改掉
注:allowoverride 的参数设置为all,表示整台服务器上都支持url规则重写。apache 服务器要读每个网站下目录下的 .htaccess 文件。如果没有这个文件,或者这个文档没有定义任何关于url重写的规则就不会有任何效果。
重启apache (用命令:service httpd restart)。
apache开启url重写功能方法详细篇
1、关于rewrite模块的调用:
apache 2.x 中url重写,是通过mod_rewrite.so 来实现的,所以您要查看您的apache 是否已经被编译进去这个模块了,并且在apache的配置文件httpd.conf 中已经调用了这个模块。在大多数主流发行版中,apache 2.x 是把rewrite模块已经编入进去了。比如我用的是slackware。apache 2.x的配置文件,放在 /etc/httpd 目录下。
在 httpd.conf 中,我们会发现类似如下的一行,是有关rewrite模块的,模块名是 mod_rewrite.so 。
loadmodule rewrite_module lib/httpd/modules/mod_rewrite.so
或
loadmodule rewrite_module lib/apache2/modules/mod_rewrite.so 如果前面有#号,您要去掉。对于大多数发行版来说,apache 2的模块一般是位于如下的两个位置
/usr/lib/apache2/modules
或
/usr/lib/httpd/modules 如果在httpd中打开调用rewrite_module的设置,查看一下是不是能调用了,要通过 httpd -m的参数来查看;
#/usr/sbin/httpd -m
如果发现有如下一行,说明模块已经能被调用了
rewrite_module (shared)
2、设置documentroot的directory:
在apache 2.x 中,我们会看到 documentroot设置的一行。这行就是存放网页程序的地方。比如linuxsir.org 存放在 /opt/www 目录中。那么我们就要设置 documentroot为如下的。
documentroot "/opt/www" 然后我们再还要对 documentroot做针对性的行为设置。在一般的情况下,httpd.conf 会给一个默认的。如果你要改 documentroot的路径,同时也要改针对documentroot的directory的设置,也就是
<directory "documentroot所设置的路径">
比如我们把documentroot的路径改为了 "/opt/www",那我们也要把directory做针对性的行为设置也要改成这个路径。
<directory "/opt/www">
options followsymlinks
#allowoverride none 注:把这行前面加#号,然后加下面的一行 ,也就是 allowoverride all
allowoverride all
order allow,deny
allow from all
</directory> 我们把allowoverride 的参数设置为all,表示整台服务器上的,都支持url规则重写。apache 服务器要读每个网站根目录下的 .htaccess 文件。如果没有这个文件,或者这个文档没有定义任何关于url重写的规则,则不会有任何效果。在一般的情况下,成熟的web 服务器应用套件,都支持url重写的,比如drupal和joomla 。当我们用这些程序时,会发现在安装包中有 .htaccess中有这个文件。我们把apache配置好后,只是需要在这些程序的后台打开此功能就行了。
3、重启httpd服务器:
在一般情况下,在各个发行版中,都有httpd服务器启动脚本,比如
# /etc/rc.d/rc.httpd restart 注:slackware linux
# /etc/init.d/apache2 restart 注:ubuntu、debian 等;
# /etc/init.d/httpd start 注:fedora 、redhat、centos