像/index.php/seo\u path这样的URI有多可靠
我注意到,有时(特别是在mod_rewrite不可用的情况下)会使用此路径方案:像/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的默认设置 问题是:这项技术有多可靠?
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的解决方案: