Как я могу использовать mod_rewrite для очистки моего ввода? - PullRequest
0 голосов
/ 22 октября 2019

Я настраиваю виртуальный хост apache и хочу, чтобы он перенаправлял все запросы в index.php, передавая в качестве параметра исходный URL-адрес, если он соответствует определенному шаблону.

Учитывая, что шаблон (quote-меньше) "PaTTern [0-9]", вот что я пробовал:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(PaTTern[0-9]).*$ /index.php?$1 [NC,L]
RewriteRule ^(.*)$ /index.php [NC,L]

Что я получаю, это Ошибка 500. Есть идеи?

1 Ответ

1 голос
/ 22 октября 2019

Последняя строка, скорее всего, вызывает цикл перезаписи (поскольку он безусловный). Поскольку вам не нужны никакие изменения в случае, если запрос уже переходит к /index.php, добавьте еще одно условие:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(PaTTern[0-9]).*$ /index.php?$1 [NC,L]
RewriteCond %{REQUEST_URI} !^/index.php$
RewriteRule ^(.*)$ /index.php [NC,L]
...