2013-03-01 4 views
0

У меня странная проблема 301 Redirect.301 Перенаправление не работает должным образом

Я использую следующее правило

Redirect 301 /catalog/index.php?target=news /news 

Как ни странно, когда я посещаю /catalog/index.php?target=news

Я перенаправлен: /catalog/?target=news

+0

Попробуйте URL-адрес URL-адреса переадресации - в/в "/ news" может возникнуть какое-то странное поведение. – Ripside

+0

hm ... im не уверен, как кодировать в htaccess - можете ли вы привести мне пример? – user608207

+0

Я думаю, что последнее слэш в вашем значении querystring - это то, что вас отбрасывает. Попробуйте это - /catalog/index.php?target=news+%2Fnews – Ripside

ответ

0

Строка запроса не является частью URI, который рисунок Redirect сопоставлен. Он удален, поэтому вы не можете попытаться сопоставить его в своем заявлении. Вы должны использовать mod_rewrite и состояние, которое соответствует по отношению к переменной %{QUERY_STRING}:

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^target=news$ 
RewriteRule ^/?catalog/(index\.php)?$ /news? [L,R=301] 

Эти правила должны идти в файл Htaccess в корневом каталоге.

Смежные вопросы