.htaccess URL重写失败 - 在此服务器上找不到请求的URL

时间:2013-03-07 22:22:39

标签: .htaccess mod-rewrite url-rewriting

我有一个非常简单的重写规则。我的整个.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/sitewww.example.com/site

我在.htaccess文件中尝试了各种语法调整,并将网站添加到基础:

RewriteBase /site 

1 个答案:

答案 0 :(得分:3)

删除'RewriteBase / site'并尝试删除/之前的index.php 斜杠不应该使用.htaccess

RewriteEngine On
ReWriteRule ^([a-zA-Z0-9\-]+)$ index.php?page=$1 [L,NC]