如果没有 .htaccess,像 http://localhost/index.php/articles/edit/1/my-first-article 这样的 URL 如何工作?

StackOverflow https://stackoverflow.com/questions/966916

我不明白这个:

http://localhost/index.php/articles/edit/1/my-first-article

该 URL 作为示例在 Kohana 框架文档. 。我查了一下我的安装文件,除了我自己的文件之外,没有 .htaccess 与此无关。

那么,为什么调用了index.php,但作为参数,这些内容看起来像是在 URL 中添加了目录呢?这看起来并不“真实”。

或者这就是原生 PHP/Apache/HTTP 的实际工作原理吗?据我了解, / 总是告诉我们“嘿,一个目录!”。对我来说真的毫无意义......这怎么可能?或者他们是否在某个地方有我看不到/找不到的 .htaccess?

其他提示

来自 阿帕奇文档:

AcceptPathInfo 指令

该指令控制是否包含遵循实际文件名(或现有目录中不存在的文件)的尾随路径名信息的请求将被接受或拒绝。可以在path_info环境变量中向脚本提供尾随路径名信息。

例如,假设位置 /测试 /指向仅包含单个文件的目录。html。然后请求/test/here.html/more and/test/nothere.html/more均作为path_info收集/更多。

所以我假设这个设置是在 httpd.conf 中的某处启用的。请注意,这与 mod_rewrite 一样,可以在许多地方启用/配置 - 看这里.

中的AcceptPathInfo 是为您的服务器开启。 :)

我不使用Kohana的,所以我不知道如果我的方法有什么用处,但是当一个服务器不支持.htaccess文件(或重写规则)我的“框架”产生的URI是这样的:

http://www.domain.com/? /物品/编辑/ 1 /我的先文章(注意?)

这是由蛙框架中使用的类似的方法,只是解析$_SERVER['REQUEST_URI'](或$_SERVER['HTTP-X-REWRITE-URL']在Windows服务器)和爆炸的“/”。

此方法完全重写独立,并且仍然产生更多或多或少SEO友好的URI

希望它的任何使用你的。

也许不是这里的情况,当然不推荐,而且可能不是正确的答案......

但是...

我见过的人使用404页解析请求,然后包括与信息的权利页。

请参阅PATH_INFO在 CGI环境变量的。

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