У меня есть решение, но я знаю, что оно не самое лучшее, и было бы лучше решить его с полной перепиской. В основном у меня есть 3 переписывания, которые будут идти в нужные мне области и делать то, что им нужно. Однако, чтобы переключаться между тем, куда мне нужно идти, мне пришлось написать URI-класс, чтобы пролистать URL-адрес, установить страницу и переменные вручную. Все работает отлично, но URL-адреса - боль в заднице, особенно если они не отформатированы точно.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/bsiadmin/$ /bsiadmin/index.php [L,QSA]
RewriteRule ^/bsiadmin/(.+)/$ /bsiadmin/index.php?page=$1 [L,QSA]
RewriteRule ^/(.+)/$ /index.php?page=$1 [QSA]
Таким образом, первое правило будет направлять все в каталог, а не в корневой index.php, второе правило делает то же самое, если указана «страница». Последнее правило возьмет все остальное и убедится, что оно использует корневой index.php и идет оттуда.
Пример URL:
http://mysite.test/icecream/id=2/
Мой пользовательский класс URI будет очищать этот идентификатор и устанавливать идентификатор как переменную $ _REQUEST.
Полагаю, я действительно хочу знать, как я могу просто переписать простой URL, такой как:
http://mysite.test?page=icecream&id=2
AS
http://mysite.test/icecream/id/2/
Без каких-либо ограничений на количество передаваемых переменных и на каталог, который существует "bsiadmin", чтобы отображать его без необходимости использовать класс uri для направления.
Спасибо за помощь.