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
像/index.php/seo\u path这样的URI有多可靠_Php_Url_Server Configuration_Pathinfo - Fatal编程技术网

像/index.php/seo\u path这样的URI有多可靠

像/index.php/seo\u path这样的URI有多可靠,php,url,server-configuration,pathinfo,Php,Url,Server Configuration,Pathinfo,我注意到,有时(特别是在mod_rewrite不可用的情况下)会使用此路径方案: http://host/path/index.php/clean_url_here --------------------------^ 至少在Apache中,这似乎是可行的,在Apache中调用了index.php,用户可以通过$\u服务器['PATH\u INFO']在这里查询/clean\u url\u部分。PHP甚至支持此功能。此外,例如,框架使用此技术作为其URL的默认设置 问题是:这项技术有多可靠?

我注意到,有时(特别是在mod_rewrite不可用的情况下)会使用此路径方案:

http://host/path/index.php/clean_url_here
--------------------------^
至少在Apache中,这似乎是可行的,在Apache中调用了
index.php
,用户可以通过
$\u服务器['PATH\u INFO']
在这里查询
/clean\u url\u
部分。PHP甚至支持此功能。此外,例如,框架使用此技术作为其URL的默认设置

问题是:这项技术有多可靠?是否存在这样的情况,Apache不调用
index.php
,而是尝试解析路径?lighttpd、nginx、IIS和AOLServer呢

一个问题?我认为这与在PHP代码中使用此功能有更多关系。所以我在这里问


附录:正如沃尔克所建议的,这个问题的合理扩展是:程序员如何影响
$\u服务器['PATH\u INFO']
在各种类型的服务器上?

需要启用才能正常工作。

我认为这是一个同样适用于stackoverflow和serverfault的问题。例如,作为开发人员,我只能告诉您,pathinfo与任何用户输入一样可靠(这意味着它可以包含几乎任何内容),您的脚本可能会收到,也可能不会收到,具体取决于Web服务器版本和配置:

阿帕奇:
IIS:例如和其他
等等

但是服务器管理员可能会告诉您在“现实世界”中需要哪些设置,以及为什么首选这些设置。

因此,问题变成了:您(或预期的用户群)对服务器配置有多大影响。

根据我的经验,我想说
PATH\u INFO
通常在正常的web托管环境和服务器设置中可用—即使在IIS上—但在极少数情况下不可用。当构建一个应该可以部署在尽可能多的平台上的应用程序时,我不会信任硬编码级别上的路径信息

只要有可能,我就会尝试构建一个包装函数
build\u url()
,根据配置设置,该函数使用

  • 原始URL
    www.example.com/index.php?clean\u URL=clean\u URL\u此处
  • 路径信息机制
    www.example.com/index.php/clean\u url
  • mod_rewrite
    www.example.com/clean_url

并在应用程序发出的所有URL中使用它。

可能存在无法识别此URL格式的幼稚脚本(例如自动链接)。从而减少创建指向您内容的链接的机会。
由于在这些任务中,自制的正则表达式模式很常见,因此失败的可能性是相当大的


从技术上讲,这些URL很好。就搜索引擎优化而言,它们“不够完美”。

抽象总是一个好主意,大家都同意。但是,我想特别了解PATH_信息体验和此功能的可用性。感谢Apache和IIS链接。通过谷歌搜索(基于最近获得的关于AcceptPathInfo的知识),我也找到了nginx的解决方案: