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的设置,也就是
比如我们把DocumentRoot的路径改为了 "/opt/www",那我们也要把Directory做针对性的行为设置也要改成这个路径 。
Options FollowSymLinks
#AllowOverride None 注:把这行前面加#号,然后加下面的一行 ,也就是 AllowOverride ALL
AllowOverride ALL
Order allow,deny
Allow from all
3、重启httpd服务器:
在一般情况下,在各个发行版中,都有httpd服务器启动脚本,比如
# /etc/rc.d/rc.httpd restart 注:Slackware Linux
【Apache开启URL重写功能方法 什么时候用url重写技术】# /etc/init.d/apache2 restart 注:ubuntu、Debian 等;
# /etc/init.d/httpd start 注:Fedora 、Redhat、CentOS