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