1.关于重写模块的调用:
Apache 2.x中的URL重写是通过mod_rewrite.so实现的,所以你需要检查你的Apache是否已经编译到这个模块中。
而且这个模块在Apache配置文件httpd.conf中已经被调用过了在大多数主流发行版中,Apache 2.x都合并了重写模块。例如,我使用Slackware。
Apache 2.x的配置文件放在/etc/httpd目录中。
在httpd.conf中,我们会发现类似下面的一行,是关于重写模块的,模块名是mod_rewrite.so
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
或
load module rewrite _ module lib/Apache 2/modules/mod _ rewrite .所以如果它前面有一个#的话,应该把它去掉。对于大多数发行版,
Apache 2的模块一般位于以下两个位置。
/usr/lib/apache2/modules
或
/usr/lib/httpd/modules如果在httpd中打开调用rewrite_module的设置,检查是否可以调用,通过httpd -M的参数检查;
#/usr/sbin/httpd -M
如果找到下面一行,就可以调用该模块。
rewrite_module (shared)
2. Set the directory of DocumentRoot:
在Apache 2.x中,我们会看到由DocumentRoot设置的一行。这一行是存储web应用程序的地方。例如,LinuxSir.Org存储在/opt/www目录中。
然后我们将如下设置DocumentRoot。
DocumentRoot '/opt/www '然后我们必须为DocumentRoot进行有针对性的行为设置。一般来说,httpd.conf会给出一个默认值。
如果要更改DocumentRoot的路径,还应该更改DocumentRoot的目录设置,即
Path set by the directory document root directory'
例如,如果我们将DocumentRoot的路径更改为'/opt/www '那么我们也应该将目标行为设置的目录更改为此路径。
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。
当我们使用这些程序时,会发现安装包中有这个文件。我们配置好Apache之后,只需要在这些程序的后台打开这个功能就可以了。
3.重新启动httpd服务器:
通常,每个发行版中都有httpd服务器启动脚本,例如
# /etc/init.d/apache2 restart 注:ubuntu、Debian 等;
# /etc/init.d/httpd start 注:Fedora 、Redhat、centos