php,url rewrite,如果url没有“?”,如何从GET获取字符串?

时间:2010-09-18 23:59:14

标签: php .htaccess url-rewriting

我想构建一个php网站,我想删除所有使url看起来动态的字符串。  但是我仍然需要通过GET获取信息,所以基本上我不知道该怎么做,因为我需要将参数传递给$ _GET请求,这显然是动态的。例如,我可能有www.domain.com/mobile_phones,其中mobile_phones将是我应该获得的参数/信息。 任何帮助都将受到高度赞赏

2 个答案:

答案 0 :(得分:1)

您通过名为“路由”的流程执行此操作。通常,您设置重写规则以将所有内容转发到单个入口点 - index.php然后index.php初始化您应用程序使用某种路由类。此路由类将REQUEST_URI与已知模式列表进行比较。当它匹配i模式时,需要解析出URI的所有变量。

另一方面,要在应用程序中生成正确的URL,通常会有一些帮助程序,它们会接受一系列参数以及控制器/操作,并根据相同的路由规则生成URL。

看看Zend框架中的Zend_Controller包是一个很好的例子。

答案 1 :(得分:1)

URL重写的工作原理是将收到的URL字符串转换为更合适的格式,包括获取参数。例如

RewriteEngine On
RewriteRule ^([0-9])/.*$ index.php?id=$1

这会将一个字符串翻译成例如example.com/1234/my-page到example.com/index.php?id=1234,并且可以直接从$_GET数组访问id。