3

我有一个非常简单的重写规则。我的整个 .htaccess 文件如下:

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

这在我的一台运行 Apache 的开发机器上完美运行。但是,它在我的其他运行 Apache 的开发机器上不起作用(mod_rewrite 在 apache2handler 下的 PHP 信息中列出)。它也不适用于我认为运行 Windows 的实时服务器。

我尝试添加以下内容:

RewriteBase /  

我不是 mod_rewrite 向导,我确信这是一个非常简单的解决方案,但它目前正在躲避我并不断收到 404 not found 错误。

在这不起作用的两个环境中,有一点不同的是,该站点不在 URL 的根目录中。所以例如它是http://localhost/sitewww.example.com/site

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

RewriteBase /site 
4

1 回答 1

3

删除“RewriteBase /site”并尝试在 index.php 之前删除 / 使用 .htaccess 时不应出现斜线

RewriteEngine On
ReWriteRule ^([a-zA-Z0-9\-]+)$ index.php?page=$1 [L,NC]
于 2013-03-08T12:34:00.827 回答