如果没有 .htaccess,像 http://localhost/index.php/articles/edit/1/my-first-article 这样的 URL 如何工作?
题
我不明白这个:
http://localhost/index.php/articles/edit/1/my-first-article
该 URL 作为示例在 Kohana 框架文档. 。我查了一下我的安装文件,除了我自己的文件之外,没有 .htaccess 与此无关。
那么,为什么调用了index.php,但作为参数,这些内容看起来像是在 URL 中添加了目录呢?这看起来并不“真实”。
或者这就是原生 PHP/Apache/HTTP 的实际工作原理吗?据我了解, / 总是告诉我们“嘿,一个目录!”。对我来说真的毫无意义......这怎么可能?或者他们是否在某个地方有我看不到/找不到的 .htaccess?
解决方案
这可能是显而易见的给你,但它并没有立即对我来说,这并不正确索引页上,除非您使用的文件名的工作。例如,http://example.com/test/my/get/params
将无法正常工作,而http://example.com/test/index.php/my/get/params
意愿。
其他提示
中的AcceptPathInfo 是为您的服务器开启。 :)
我不使用Kohana的,所以我不知道如果我的方法有什么用处,但是当一个服务器不支持.htaccess文件(或重写规则)我的“框架”产生的URI是这样的:
http://www.domain.com/? /物品/编辑/ 1 /我的先文章(注意?)
这是由蛙框架中使用的类似的方法,只是解析$_SERVER['REQUEST_URI']
(或$_SERVER['HTTP-X-REWRITE-URL']
在Windows服务器)和爆炸的“/”。
此方法完全重写独立,并且仍然产生更多或多或少SEO友好的URI
希望它的任何使用你的。
也许不是这里的情况,当然不推荐,而且可能不是正确的答案......
但是...
我见过的人使用404页解析请求,然后包括与信息的权利页。
请参阅PATH_INFO在 CGI环境变量的。