Apache переписать правило - PullRequest
       8

Apache переписать правило

1 голос
/ 17 октября 2010

Я новичок в перезаписи, мне интересно, почему это правило перезаписи не работает, оно перестает запускать Apache

RewriteRule ^([-a-zA-Z0-9_]+)?/constant/([-a-zA-Z0-9_]+)/(.*)$ http://$2.domain.com/$1/$3 [R=301, NC]

Что должно делать это правило - рефакторинг URL, примеры:

http://www.domain.com/controller/constant/variable/action следует перенаправить на http://variable.domain.com/controller/action

, а

http://www.domain.com/constant/variable следует перенаправить на http://variable.domain.com

в основном / константа / переменная должна быть обнаружена, вставлена ​​в поддомен и затем удалена

Пожалуйста, помогите мне в этой тонкой проблеме, с которой я сталкиваюсь.

1 Ответ

2 голосов
/ 17 октября 2010

Попробуйте это с двумя правилами:

RewriteRule ^constant/([-a-zA-Z0-9_]+)$ http://$2.domain.com/$1 [R=301,NC]
RewriteRule ^([-a-zA-Z0-9_]+)/constant/([-a-zA-Z0-9_]+)/(.*)$ http://$2.domain.com/$1/$3 [R=301,NC]

Также обратите внимание, что флаги не должны содержать пробелов: [R=301, NC] недопустимый синтаксис, но [R=301,NC] допустимый синтаксис.

...