我有我认为是一个奇怪的问题。我在同一个托管平台上开发了几个站点。所有网站似乎都很好,除了其中一个。该网站设置在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。提前感谢任何建议。
答案 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规范的一部分,所以我认为大多数服务器都有类似的设置。