怎么可靠的是Uri就像/索引。php/seo_path
-
26-09-2019 - |
题
我注意到,有时(尤其是在mod_rewrite不提供)这一路径方案是用于:
http://host/path/index.php/clean_url_here
--------------------------^
此 似乎 工作至少在阿帕奇,那里的 index.php
是称为,一个可查询的 /clean_url_here
部分通过 $_SERVER['PATH_INFO']
.PHP甚至 种宣传 这一特征。还有,例如 笨 框架使用这种技术作为默认对他们的网址。
问题: 怎么可靠的技术?是有情况下,在阿帕奇没打电话 index.php
但是,试图解决的道路?什么有关程序,服务,IIS,AOLServer?
一ServerFault问题吗? 我认为这是得到了更多的要做到与使用这个特点的内部PHP code.因此我要求这里。
增编: 正如所建议的VolkerK,合理扩展到这个问题是:怎么可能一个程序员的影响力存在 $_SERVER['PATH_INFO']
在各种服务器的类型?
解决方案
我认为这是同样适合于计算器和serverfault这个问题。例如。我作为一名开发人员只能告诉你,PATHINFO是值得信赖任何用户输入(这意味着它可以包含几乎任何东西),它取决于Web服务器版本和配置脚本可能会或可能不会收到:
的Apache: 的AcceptPathInfo结果 IIS:例如 AllowPathInfoForScriptMappings 和其他结果 等和上...
但是,服务器管理员可能可以告诉你哪些设置,你可以期望“在现实世界中”,为什么这些设置是首选。结果 所以,问题就变成了:有多少影响你(或预期的用户群)对服务器配置
。其他提示
的AcceptPathInfo 需要为了有这个工作被启用。
从我的经验,我想说的 PATH_INFO
是 通常可在正常的网络托管环境服务的设置,即使在IIS-但是,在罕见的情况下,它不是。当建立一个应用程序,应部署在尽可能多的平台,为可能,我不会信任path_info在坚硬的编码的水平。
只要我可以,我尝试建立一个包装的功能 build_url()
根据结构设置,使用
- 原URL
www.example.com/index.php?clean_url=clean_url_here
- 该机构path_info
www.example.com/index.php/clean_url
- mod_rewrite
www.example.com/clean_url
和使用,在所有应用程序的网址发出。
有可能是幼稚的脚本(自动链接为例)不承认这个网址的格式。从而降低了机会,你的内容的链接将被创建。点击 由于本土的正则表达式模式是这些共同的任务,失败的几率是非常真实的。
从技术上讲,这些URL是细。 SEO的角度来看,他们是 '不完美'。