我正在使用Mod Rewrite删除 index.php。我不想使用查询。我希望foo.com/bar被解释为foo.com/index.php/bar。
它做得很好,但给了我Not Found error。在此服务器上未找到请求的 URL /home/foo/www/index.php/bar。
为什么!!
我正在使用Mod Rewrite删除 index.php。我不想使用查询。我希望foo.com/bar被解释为foo.com/index.php/bar。
它做得很好,但给了我Not Found error。在此服务器上未找到请求的 URL /home/foo/www/index.php/bar。
为什么!!
更新
我想我只是想通了你想要做什么。你看,你可以在幕后传递查询,但你不能在幕后传递你的建议。你必须做一个实际的重定向。像这样的东西(重要的部分是R
):
RewriteRule ^bar$ index.php/bar [NC,QSA,R]
这会强制使用新的特殊路径重定向到您的页面。那是你想要的吗?
原始答案
您不能将路径传递给这样的 PHP 页面,因为它将被解释为路径的一部分。很有可能,您的文件位于 Linux/Unix 机器上,其中的目录可以用 a 命名.
。抱歉,您必须使用查询字符串:
RewriteBase /
RewriteRule ^bar$ index.php?page=bar [NC,QSA]
或 更新:
RewriteBase /
RewriteRule ^bar$ index.php?/bar [NC,QSA]
我也认为最后几个版本的 Windows 也支持.
目录,但我不确定。
index.php
几乎可以肯定是一个文件,而不是一个目录,除非你(奇怪地)有一个名为index.php
. Apache 正确地抱怨没有这样的目录。
你可能打算做类似的事情index.php?page=bar
。相应地调整你的.htaccess
。