如何实现URL路由在PHP。
Answer 1:
如果您使用Apache,你可以做的URL用mod_rewrite路由。
小例子:
RewriteEngine On
RewriteRule ^(dir1)/?(path2)? main.php?dir=$1&path=$2
这将有喜欢的任何请求
http://yoursite.com/dir1/path1
通过服务
http://yoursite.com/main.php?dir=dir1&path=path2
更多的例子在这里 。
另一种方法都有每个请求重定向到一个单一的PHP文件
RewriteEngine On
RewriteRule (.*) main.php?request=$1
然后做它的代码,在那里你可以使用类似的方法 ,通过具有一组由一些代码匹配,然后通过头()或只是内部重定向的正则表达式。
Answer 2:
首先,你需要Apache的(我想你的服务器是Apache)的 mod_rewrite
启用。
然后,你需要创建一个重写规则重定向一切index.php网页。
像这样的东西可以这样做:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php
它会重定向每一个请求到一个不存在的index.php到一个文件; 这意味着,如果请求的URL是www.example.com/blah,它实际上是index.php文件将被调用。
关于,这里几个环节,可以帮助:
- URL重写指南
- mod_rewrite的:一个初学者指南URL重写
然后,这个页面已经确定什么必须显示,这取决于初始网址被称为 - 或者收到什么参数。
这可以通过使用来完成设计模式前端控制器 ,例如-它在最现代的PHP框架来实现,例如。
目前已经对SO这个问题的许多问题; 一些人(和他们的答案)的可能会帮助你。 例如 :
- 我该怎么做URL重写PHP中?
- 在PHP中的URL映射?
- PHP应用程序URL路由
文章来源: How to Implement URL Routing in PHP