理论上:几乎所有现代网站都以这种方式运作:
somedomain.com/layer1/layer2/action
例如:
http://stackoverflow.com/questions/ask
通常使用.htaccess和ModRewrite Engine完成此操作。不久之前,我偶然发现了一篇文章,描述了一些来自php的东西。我不记得这个名字了。这段PHP代码知道当前打开的URL。它能告诉我们调用哪个域,调用什么TLD,第一个目录是什么,第二个目录是什么,被调用文件是什么等等。
我知道Kohana Framework使用这项技术,但不知道在哪里看。有谁熟悉这个?
答案 0 :(得分:3)
您的意思是使用PATH_INFO
环境变量。
参见例如here
如果无法访问.htaccess设置,您将使用此方法在路径中始终只有一个filename.php
:
www.domain.com/filename.php/questions/ask/
答案 1 :(得分:3)
在大多数情况下,.htaccess表面下发生的是你正在寻找的东西。很多情况下.htaccess文件只是将任务委托给index.php文件,该文件本身准备处理表示控制器,方法和参数的传递值。
我不明白为什么你不能简单地创建自己的.php文件来解析url并从那里处理值。您只需使用该.php文件作为所有网址的基础:
www.mysite.com/index.php/controller/method/parameter1/parameter2
答案 2 :(得分:1)
您可以使用apache的错误文档,但它只是一个黑客(也是重写)而不是一个干净的解决方案。
答案 3 :(得分:1)
您可以使用HTTP标头的组合,但在某些Web服务器上这些标头可能不可靠。要查看服务器上可用的HTTP标头,请使用以下内容创建一个页面:
<?php phpinfo(); ?>
查找PHP变量部分,特别是这些是您可以使用的部分:
_SERVER["HTTP_HOST"]
_SERVER["SCRIPT_NAME"]
答案 4 :(得分:1)