如何在PHP中实现URL路由

如何在PHP中实现URL路由,php,frameworks,standards,url-routing,Php,Frameworks,Standards,Url Routing,如何在PHP中实现URL路由。首先,您需要启用Apache(我假设您的Web服务器是Apache) 然后,您需要创建一个重写规则,将所有内容重定向到index.php页面。 这样做可以: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .* index.php 它会将每个请求重定向到index.php中不存在的文件;这意味着,如果请求的URL是www.example.com/blah,那么实际上将调用ind

如何在PHP中实现URL路由。

首先,您需要启用Apache(我假设您的Web服务器是Apache)


然后,您需要创建一个重写规则,将所有内容重定向到index.php页面。
这样做可以:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php 
它会将每个请求重定向到index.php中不存在的文件;这意味着,如果请求的URL是www.example.com/blah,那么实际上将调用index.php

关于这一点,这里有几个链接可以提供帮助:


然后,该页面必须根据调用的初始URL或接收到的参数来确定必须显示的内容

这可以通过使用来实现,例如,它是在大多数现代PHP框架中实现的


在这一问题上存在着许多问题;其中一些(以及他们的答案)可能会对你有所帮助。例如:


如果使用Apache,可以通过mod_rewrite进行URL路由

小例子:

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

然后在代码中执行此操作,您可以使用,方法是使用一组正则表达式,这些正则表达式与某些代码匹配,然后通过header()或仅在内部重定向。

可能的重复:。试着看看这个问题。事实上,可能是一式三份=)要么是他们在一起工作,要么是一个袜子傀儡帐户。看这个教程,这应该是这个问题的标准答案。它适用于在Apache上运行的任何服务器端语言,而且成堆的重写规则也不是特别可持续的。