Php 未找到Htaccess重写

Php 未找到Htaccess重写,php,mod-rewrite,url-rewriting,file-not-found,Php,Mod Rewrite,Url Rewriting,File Not Found,我正在使用Mod Rewrite删除index.php。我不想使用查询。我希望foo.com/bar被解释为foo.com/index.php/bar 它做得很好,但给了我未发现的错误。在此服务器上找不到请求的URL/home/foo/www/index.php/bar 为什么 更新 我想我知道你想做什么了。你看,你可以在幕后传递查询,但你不能在幕后传递你的建议。你必须做一个实际的重定向。像这样重要的部分是R: 这将强制使用新的特殊路径重定向到页面。这就是你想要的吗 原始答案 您不能像这样向PH

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

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

为什么

更新

我想我知道你想做什么了。你看,你可以在幕后传递查询,但你不能在幕后传递你的建议。你必须做一个实际的重定向。像这样重要的部分是R:

这将强制使用新的特殊路径重定向到页面。这就是你想要的吗

原始答案

您不能像这样向PHP页面传递路径,因为它将被解释为路径的一部分。很可能,您的文件位于Linux/Unix计算机上,在该计算机上,目录可以用名称命名。在里面。很抱歉,您必须使用查询字符串:

RewriteBase /
RewriteRule ^bar$ index.php?page=bar [NC,QSA]
或更新:

我还认为,最近几个版本的windows支持。也在目录中,但我不确定。

更新

我想我知道你想做什么了。你看,你可以在幕后传递查询,但你不能在幕后传递你的建议。你必须做一个实际的重定向。像这样重要的部分是R:

这将强制使用新的特殊路径重定向到页面。这就是你想要的吗

原始答案

您不能像这样向PHP页面传递路径,因为它将被解释为路径的一部分。很可能,您的文件位于Linux/Unix计算机上,在该计算机上,目录可以用名称命名。在里面。很抱歉,您必须使用查询字符串:

RewriteBase /
RewriteRule ^bar$ index.php?page=bar [NC,QSA]
或更新:

我还认为,最近几个版本的windows支持。也在目录中,但我不确定。

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

您可能打算执行index.php?page=bar之类的操作。相应地调整你的.htaccess。

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


您可能打算执行index.php?page=bar之类的操作。相应地调整.htaccess。

是,Windows将允许。在目录中。我正在寻找一种分段的方法,而不是通过查询。我相信密码点火器就是用它的。除非他们只是鬼鬼祟祟的@卢克,把你分享的链接通读一遍。你会看到他们的“在线解决方案”实际上是index.php?/bar,它仍然使用查询字符串,只是没有变量名。啊!极好的就这样。谢谢你,道格@Luke Burns没问题伙计抱歉我一开始误解了你的意思!祝你的项目好运!是的,Windows允许。在目录中。我正在寻找一种分段的方法,而不是通过查询。我相信密码点火器就是用它的。除非他们只是鬼鬼祟祟的@卢克,把你分享的链接通读一遍。你会看到他们的“在线解决方案”实际上是index.php?/bar,它仍然使用查询字符串,只是没有变量名。啊!极好的就这样。谢谢你,道格@Luke Burns没问题伙计抱歉我一开始误解了你的意思!祝你的项目好运!哦,它把它当作一个目录?如果我不想使用查询,我该怎么办?哦,它把它当作一个目录?如果我不想使用查询,我该怎么办?@Luke,我更新了我的答案。我想我可能理解你想要做什么,所以如果我错过了,请告诉我。@Luke,我更新了我的答案。我想我可能理解你想要做什么,所以如果我错过了,请告诉我。
RewriteBase /
RewriteRule ^bar$ index.php?/bar [NC,QSA]