.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 应用程序根据 '/' 拆分字符串并处理数组,但对您的应用程序有意义