Я пытаюсь заставить все файлы HTML и PHP на моем сайте перенаправлять через index.php, чтобы к ним можно было применить общие фреймы, шаблонное решение, которое я кодировал, которое я нашел довольно элегантным. В любом случае, у меня проблемы с моими файлами PHP, особенно с теми, у которых есть аргументы после них.
Мое обычное правило для файлов PHP следующее:
RewriteCond %{REQUEST_URI} !index.php$
RewriteRule ^(.+).php$ index.php?page=$1&type=1 [NC,L]
Это прекрасно работает для любых страниц, которые не имеют аргументов, но вы можете видеть, что любые документы PHP, которые имеют
?argument=something
заканчивается как:
index.php?page=path/to/page?argument=something&type=1
, который вообще не является рабочим решением. Теперь, что меня беспокоит, так это $ в конце правила, не должно ли это привести к сбою, если после .php есть что-то?
В любом случае, я попытался переписать правило следующим образом:
RewriteRule ^(.+).php\?(.+)$ index.php?page=$1&type=1&$2 [NC,L]
но это просто не срабатывает вообще. Кажется, что выражение regex, используемое в mod_rewrite, сильно отличается от того, с чем я привык работать, поэтому я уверен, что это простые ошибки, которые я допустил, но я не могу найти достойную документацию для this вкус регулярных выражений, кроме самых основных примеров.
Может кто-нибудь показать мне, что я делаю не так? Спасибо.