url / php path_info问题

时间:2011-11-02 12:49:03

标签: php url pathinfo

我有我认为是一个奇怪的问题。我在同一个托管平台上开发了几个站点。所有网站似乎都很好,除了其中一个。该网站设置在1页左右(index.php),它根据path_info从数据库中检索要显示的正确数据 - 这已经工作了多年 - 现在在一个已经停止工作的站点上。通过停止工作,我的意思是下面的页面现在转到404错误 - 我的印象是它应该看到index.php作为要使用的脚本。

我认为这是htconfig或其他文件的问题我无法在主机端错误配置。也许有人可以阐明我可能指导他们的地方。我自己的htaccess文件是完全空的:

wwww.testsite.com/index.php/page1

以上用于转到index.php然后使用$ _SERVER path_info检索page1并从数据库中获取与page1相关的内容并在页面上显示该内容。有人可以证实我不会生气 - 以上应该去index.php吗?也许也解释了为什么url现在被视为不存在,因为它似乎不是指向index.php而是指向page1。提前感谢任何建议。

2 个答案:

答案 0 :(得分:1)

  

有人可以确认我不会生气 - 上面的[wwww.testsite.com/index.php/page1]应该转到index.php吗?

不。这应该在page1的文档根目录中的index.php目录中查找名为www.testsite.com的文件。

我认为您曾经有一个.htaccess文件看起来像这样:

RewriteEngine on
RewriteRule ^index.php(.*)$ index.php

另一种可能性是MultiViews之前已启用,现在已不再存在。使用MultiViews,您还可以获得所描述的行为。如果托管商允许,您只需创建一个包含以下内容的.htaccess文件即可启用它。

Options MultiViews

如果您在文档根目录中放入带有上述解决方案之一的.htaccess文件,则可以对此进行验证。

答案 1 :(得分:0)

在Apache中,如果你在Apache配置中有任何相关的AcceptPathInfo on(包括在.htaccess中,如果服务器配置允许它)并且有一个文件/index.php,那么{{1确实应该转到/index.php/stuff,而/index.php设置为$_SERVER['PATH_INFO']。 CGI脚本处理程序和mod_php *默认情况下执行此操作,因此除非明确关闭,否则它应该正常工作。

无论哪种方式,如果它当前已关闭,只要为网站设置了"/stuff",就可以通过向.htaccess文件添加AcceptPathInfo on来重新打开它。

我对其他网络服务器没有任何承诺,但AllowOverride FileInfo是CGI规范的一部分,所以我认为大多数服务器都有类似的设置。