我只是好奇,如何调用apache的功能来引导像这样的请求
www.example.com/index.php/my/path/here
到文件index.php?在第一时间,您可能会认为,如果此请求导致404错误页面是正确的,因为站点根目录中没有名为index.php的文件夹。
BTW,是否有可能关闭这个Apache功能(如果它是一个功能),以便这些请求真的以404结束?答案 0 :(得分:10)
这不是网址重写功能。或者至少它不需要 。见AcceptPathInfo Directive:
该指令控制是否 包含尾随的请求 跟随的路径名信息 实际文件名(或不存在的文件 在一个现有的目录中)将 接受或拒绝。尾随 可以制作路径名信息 可用于脚本中
PATH_INFO
环境变量。例如,假设位置 / test /指向一个目录 仅包含单个文件
here.html
。然后请求/test/here.html/more
和/test/nothere.html/more
都收集/more
为PATH_INFO
。
PATH_INFO
给定的额外路径信息 由客户。换句话说,脚本 可以通过他们的虚拟访问 路径名,后跟额外的 这条路径尽头的信息。 额外信息以发送方式发送
PATH_INFO
。这个信息应该 如果它来了,由服务器解码 从URL传递到之前的URL CGI脚本。
答案 1 :(得分:2)
有关说明,请参阅this link。
这是一种使用查询字符串将信息传递给(在这种情况下)index.php
脚本而不使用的方法,某些搜索引擎会忽略该字符串,因此名称为文章“搜索引擎友好的URL”。
我可以推荐文章中讨论的第三种方法,因为它可以避免看起来奇怪的URL,中间有index.php
。
答案 2 :(得分:1)
在那里你可以拥有像index.php这样的文件,从服务器检查PATH_INFO并处理整个内容树。虽然我无法将其关闭,但您可以让index.php检查非空$ _SERVER ['PATH_INFO']并通过header()函数响应404代码。