2014-12-18 3 views
0

Мне нужно сделать переадресацию старой страницы на новую с тем же webdite. Проблема в том, что старый URL имеет {QUERY_STRING}.RewriteRule с {QUERY_STRING}

Старый http://hostelcomfort.com.ua/?page_id=12
Новый http://hostelcomfort.com.ua/o-gostinitse/

До сих пор лучшее, что я мог придумать было

RewriteCond %{QUERY_STRING} ^page_id=(.*)$ 
RewriteRule ^/?$ /o-gostinitse/ [R=301,L] 

Однако он продолжает добавлять строку запроса в конец/о-gostinitse /? Page_id = 12 ,

Как отредактировать вторую строку?

ответ

2

Вы должны использовать:

RewriteCond %{QUERY_STRING} ^page_id=12$ 
RewriteRule ^/?$ /o-gostinitse/? [R=301,L] 

? в целевой URL будет отбрасывать любую существующую строку запроса.

PS: Начиная с Apache 2.4 вы также можете использовать QSD (Строка запроса Отклонить) флаг:

RewriteCond %{QUERY_STRING} ^page_id=12$ 
RewriteRule ^/?$ /o-gostinitse/ [R=301,L,QSD] 
+1

Ничего себе, хороший. Я тоже много раз боролся с этим ... – Chrisissorry

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