2

我正在使用Mod Rewrite删除 index.php。我不想使用查询。我希望foo.com/bar被解释为foo.com/index.php/bar

它做得很好,但给了我Not Found error。在此服务器上未找到请求的 URL /home/foo/www/index.php/bar。

为什么!!

4

2 回答 2

0

更新

我想我只是想通了你想要做什么。你看,你可以在幕后传递查询,但你不能在幕后传递你的建议。你必须做一个实际的重定向。像这样的东西(重要的部分是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 也支持.目录,但我不确定。

于 2010-02-12T03:50:35.697 回答
0

index.php几乎可以肯定是一个文件,而不是一个目录,除非你(奇怪地)有一个名为index.php. Apache 正确地抱怨没有这样的目录。

你可能打算做类似的事情index.php?page=bar。相应地调整你的.htaccess

于 2010-02-12T03:51:26.353 回答