2013-11-02 2 views
0

Я новичок в использовании mod_rewrite engine на Apache, хотя у меня есть некоторое базовое понимание регулярных выражений. Однако я недоумеваю и становлюсь вполне апоплексическим при перенаправлении, которое работает неправильно.Перенаправление с mod_rewrite не работает правильно

Вот соответствующий код в моем файле .htaccess:

RewriteCond %{REQUEST_URI} ^/vacations/([^/]*)(.*)$ [NC] 
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] 

Когда я обращаю, нет ничего в $ 2. $ 0 и $ 1 содержат всю строку со строкой. Например, если исходный URL-адрес/vacations/asia/rar, я буду перенаправлен на http://www.example.com/vacations/asia/rar вместо www.example.com/asia.

Любая помощь будет принята с благодарностью.

ответ

0

Это происходит потому, что вы используете RewriteRule backreferences ($ 1), когда вы должны использовать RewriteCond backreferences (% 1):

RewriteCond %{REQUEST_URI} ^/vacations/([^/]*)(.*)$ [NC] 
RewriteRule ^(.*)$ http://www.example.com/%1 [R=301,L] 
Смежные вопросы