.htaccess URL 用随机参数重写
.htaccess URL rewrite with random parameters
我目前正在编写一个 PHP 应用程序并准备创建各种控制器。目前我有一个带有特定方法的控制器,所以 URL 看起来像这样:
http://somewebsite.com/index.php?c=controller&a=action
正在重写为:
http://somewebsite.com/controller/action
使用此 .htaccess 文件:
RewriteEngine On
RewriteRule ^([a-z]+)/([a-z]+)$ index.php?c=&a= [NC]
我想要实现的是使用多个控制器(越多越好)重写 URL 的能力,可能是随机顺序。有没有比重写 URL 参数的所有可能组合更方便的方法?
许多框架(Codeigniter、WordPress、Laravel 等)使用类似于以下内容的 .htaccess
文件:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L,QSA]
这将重写所有要由 index.php
文件处理的传入 URL。然后,您可以使用 $_SERVER['REQUEST_URI']
变量来获取确切的请求 URI,解析它,然后按照您的需要进行处理。
如果您要使用任意路由方案,最好的选择可能是只传递整个 url 字符串,例如^(.+)$ 到 index.php 并让您的 php 应用程序根据 '/' 拆分字符串并处理数组,但对您的应用程序有意义
我目前正在编写一个 PHP 应用程序并准备创建各种控制器。目前我有一个带有特定方法的控制器,所以 URL 看起来像这样:
http://somewebsite.com/index.php?c=controller&a=action
正在重写为:
http://somewebsite.com/controller/action
使用此 .htaccess 文件:
RewriteEngine On
RewriteRule ^([a-z]+)/([a-z]+)$ index.php?c=&a= [NC]
我想要实现的是使用多个控制器(越多越好)重写 URL 的能力,可能是随机顺序。有没有比重写 URL 参数的所有可能组合更方便的方法?
许多框架(Codeigniter、WordPress、Laravel 等)使用类似于以下内容的 .htaccess
文件:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L,QSA]
这将重写所有要由 index.php
文件处理的传入 URL。然后,您可以使用 $_SERVER['REQUEST_URI']
变量来获取确切的请求 URI,解析它,然后按照您的需要进行处理。
如果您要使用任意路由方案,最好的选择可能是只传递整个 url 字符串,例如^(.+)$ 到 index.php 并让您的 php 应用程序根据 '/' 拆分字符串并处理数组,但对您的应用程序有意义