Есть ли способ сделать какой-то цикл регулярных выражений в .htaccess - PullRequest
0 голосов
/ 24 августа 2010

привет, у меня есть список правил в моем файле .htaccess, но если мне нужно добавить новую страницу, мне нужно снова отредактировать этот файл и добавить еще одни правила. Вот несколько

RewriteRule ^admin/(.*).html$ index.php?x=admin&y=$1
RewriteRule ^admin/project/(.*).html$ index.php?x=work&p=project&$1
RewriteRule ^work/(.*).html$ index.php?x=work&p=$1

Есть ли способ, которым я могу иметь 1 правило, которое будет работать для всех. Есть ли способы сделать циклы, чтобы для каждого дополнительного / чего-то / дополнительного в URL-адресе он добавлял их в редирект ??

Спасибо.

1 Ответ

2 голосов
/ 24 августа 2010

Простой ответ: нет, невозможно создать RewriteRule, который может справиться с динамическим количеством переменных. Ваша единственная реальная возможность - это захватить основы и затем собрать все как один кусок и проанализировать его с помощью PHP. Может быть возможно улучшить то, что у вас сейчас есть, это зависит от того, является ли x = work во втором правиле опечаткой, и насколько согласованы переменные строки запроса ...

RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)\.html$ index.php?x=$1&y=$2

Это шаблон, который вы можете увидеть в системе на основе MVC. Но они обычно имеют систему маршрутизации, позволяющую вам определять шаблоны для сопоставления (что аналогично необходимости добавлять RewriteRules разными способами).

...