我有一个非常简单的重写规则。我的整个 .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/site
和www.example.com/site
我在 .htaccess 文件中尝试了各种语法调整,并将站点添加到基础:
RewriteBase /site