环境:
系统 Windows
Apache 2.2
加载Rewrite模块:
在conf目录下httpd.conf中找到
LoadModule rewrite_module modules/mod_rewrite.so
这句,去掉前边的注释符号“#”,或添加这句。
允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be “All”, “None”, or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All
这样就可以使用了,如果配置还是不行可以接着看下面
2.配置文件是不是有问题
1. 首先检查是否有开启rewrite,检查方法可以(www.111cn.net)通过phpinfo()来查看“Loaded Modules”中是否有“mod_rewrite”,如下图。
. 检查伪静态规则的文件名是否正确,是不是为“.htaccess”,这个词容易写错,所以要注意这一点。
3. 如果是这样的访问形式:http://localhost/daixiaorui/ ,就不要加“RewriteBase /”
这句话了,“RewriteBase /”表示定义根路径。这个时候要么注释这句话,要么改成“RewriteBase /daixiaorui/”。
. 再就是检查写法规则是否正确,下面举一个首页和文章页的例子,可供参考:
RewriteEngine On
#RewriteBase /
RewriteRule ^index\.html$ index\.php [L]
RewriteRule ^read\/([0-9]+)\.html$ read.php?id=$1 [QSA,L]
如果还是不行,那就请看看你的web服务器是不是apache了。