我有一个非常简单的重写规则。我的整个.htaccess文件如下:
RewriteEngine On
ReWriteRule ^([a-zA-Z0-9\-]+)$ /index.php?page=$1 [L,NC]
这适用于我运行Apache的一台开发机器。然而,它在我运行Apache的其他开发机器上不起作用(在apache2handler下的PHP信息中列出了mod_rewrite)。它也不适用于我认为运行Windows的实时服务器。
我尝试添加以下内容:
RewriteBase /
我不是mod_rewrite向导,我确信这是一个非常简单的解决方案,但它目前无法解决,并且一直收到404错误。
在两个不起作用的环境中,有一点不同,就是该网站不在URL的根目录中。例如,它是http://localhost/site
和www.example.com/site
我在.htaccess文件中尝试了各种语法调整,并将网站添加到基础:
RewriteBase /site
答案 0 :(得分:3)
删除'RewriteBase / site'并尝试删除/之前的index.php 斜杠不应该使用.htaccess
RewriteEngine On
ReWriteRule ^([a-zA-Z0-9\-]+)$ index.php?page=$1 [L,NC]