我注意到,有时(尤其是在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的角度来看,他们是 '不完美'。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top