Vin*_*vic 16
如果您使用Apache,则可以通过mod_rewrite进行URL路由.
小例子:
RewriteEngine On
RewriteRule ^(dir1)/?(path2)? main.php?dir=$1&path=$2
Run Code Online (Sandbox Code Playgroud)
那会有任何要求
http://yoursite.com/dir1/path1
Run Code Online (Sandbox Code Playgroud)
服务
http://yoursite.com/main.php?dir=dir1&path=path2
Run Code Online (Sandbox Code Playgroud)
这里有更多例子.
另一种选择是将每个请求重定向到单个php文件
RewriteEngine On
RewriteRule (.*) main.php?request=$1
Run Code Online (Sandbox Code Playgroud)
然后在代码中执行它,您可以使用类似的方法,通过一组正则表达式与一些代码匹配,然后通过header()或内部重定向.
Pas*_*TIN 11
首先,您需要启用Apache (我认为您的Web服务器是Apache) mod_rewrite.
然后,您需要创建一个RewriteRule以将所有内容重定向到index.php页面.
像这样的东西可以做:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php
Run Code Online (Sandbox Code Playgroud)
它会将每个请求重定向到index.php不存在的文件; 这意味着,如果请求的URL是www.example.com/blah,它实际上是将被调用的index.php.
关于这一点,这里有几个可以帮助的链接:
然后,此页面必须确定必须显示的内容,具体取决于调用的初始URL - 或接收的参数.
例如,这可以使用设计模式前端控制器来完成- 例如,它在大多数现代PHP框架中实现.
SO上有很多关于这个问题的问题; 其中一些(及其答案)可能对您有所帮助.例如 :