Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
url/php路径\信息问题_Php_Url_Pathinfo - Fatal编程技术网

url/php路径\信息问题

url/php路径\信息问题,php,url,pathinfo,Php,Url,Pathinfo,我有一个我认为是奇怪的问题。我有几个网站在同一个托管平台上开发。除了其中一个网站外,所有网站似乎都很好。该网站建立在1个页面(index.php)左右,根据路径信息从数据库中检索正确的数据以显示-这已经运行多年-现在在一个网站上已经停止运行。停止工作,我的意思是,下面的页面现在出现了404错误——我觉得应该将index.php作为要使用的脚本 我认为这是htconfig或其他文件的问题,我无法访问这些文件,因为它们在主机端被错误配置。也许有人能说明我可以把他们引向何方。我自己的htaccess文

我有一个我认为是奇怪的问题。我有几个网站在同一个托管平台上开发。除了其中一个网站外,所有网站似乎都很好。该网站建立在1个页面(index.php)左右,根据路径信息从数据库中检索正确的数据以显示-这已经运行多年-现在在一个网站上已经停止运行。停止工作,我的意思是,下面的页面现在出现了404错误——我觉得应该将index.php作为要使用的脚本

我认为这是htconfig或其他文件的问题,我无法访问这些文件,因为它们在主机端被错误配置。也许有人能说明我可以把他们引向何方。我自己的htaccess文件完全为空:

wwww.testsite.com/index.php/page1
上面的代码用于转到index.php,然后使用$\u SERVER path\u info检索page1,从数据库中获取与page1关联的内容,并在页面上显示。有人能确认我没有发疯吗?请把上面的内容转到index.php?也许还可以解释为什么url现在被视为不存在,因为它似乎不是指向index.php,而是指向page1。提前谢谢你的建议

有人能确认我没有发疯吗?上面的[www.testsite.com/index.php/page1]应该转到index.php吗

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

我想您以前有一个.htaccess文件,看起来像这样:

RewriteEngine on
RewriteRule ^index.php(.*)$ index.php
另一种可能是以前启用的,现在不再启用。使用多视图,您还可以获得所描述的行为。如果宿主允许,只需创建一个包含以下内容的.htaccess文件即可启用它:

Options MultiViews

如果将包含上述任一解决方案的.htaccess文件放在文档根目录中,则可以对此进行验证

在Apache中,如果您在Apache配置中的任何相关位置(包括
.htaccess
,如果服务器配置允许)都有
AcceptPathInfo,并且有一个文件
/index.php
,那么
/index.php/stuff
确实应该转到
/index.php
,并且应该设置
$\u server['PATH\u INFO']
“/stuff”
。CGI脚本处理程序和mod_php*在默认情况下甚至可以这样做,因此除非显式关闭,否则它应该可以正常工作

无论哪种方式,如果它当前处于关闭状态,如果为站点设置了
AllowOverride FileInfo
,则可以通过将
AcceptPathInfo on
添加到.htaccess文件来重新打开它


我对其他web服务器没有承诺,但是
PATH\u INFO
是CGI规范的一部分,所以我认为大多数服务器都会有类似的设置。

他们升级了PHP或apache吗?谢谢codecaster。我将在中添加重写代码并对其进行测试-但为了省心,您能否在多视图上告诉我更多信息-我查看了您提供的页面链接,但这是在htconfig文件中完成的吗?从该链接:“多视图是一个按目录选项,这意味着可以在httpd.conf中的或节中,或在.htaccess文件中(如果正确设置了AllowOverride)使用选项指令来设置它。”输入选项多视图给了我一个内部服务器错误:(重写规则似乎也无法解决此问题:(请表明你也愿意找到解决方案,不要指望我(或任何人)帮你谷歌。“选项multiviews internal server error”给了我一个网站。长话短说,你的主持人应该启用它。或者你可以尝试mod_rewrite部分。配置nginx以这种方式工作的一种可能方法如下所示: