В настоящее время я пишу приложение 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=$1&a=$2 [NC]
Чего я хочу достичь, так это возможности перезаписать URL-адрес более чем одним контроллером (чем больше, тем лучше), возможно, в случайном порядке. Есть ли более удобный способ, чем переписывать все возможные комбинации параметров URL?






Многие фреймворки (Codeigniter, WordPress, Laravel и т. д.) Используют файл .htaccess, подобный следующему:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Это перезаписывает все входящие URL-адреса, которые будут обрабатываться файлом index.php. Затем вы можете использовать переменную $_SERVER['REQUEST_URI'], чтобы получить точный URI запроса, проанализировать его, а затем обработать его так, как вы хотите.
если вы собираетесь использовать произвольную схему маршрутизации, вероятно, лучше всего просто передать всю строку URL-адреса, например. ^ (. +) $ в index.php и пусть ваше приложение php разбивает строку на основе '/' и обрабатывает массив, однако имеет смысл для вашего приложения
Думаю, вам стоит привести несколько примеров.