2015-04-29 4 views
1

Я хотел бы сделать 301 переадресацию и со старого веб-сайта с использованием точного точного URL-адреса без дополнительных параметров.Точное совпадение URL-адреса, включая параметры

пример:

/en-direct.php?page=7 

пойти в:

http://www.example.org/news/ 

и страница:

/en-direct.php?page=8 

пойти в:

http://www.example.org/awesome-but-totally-different-page/ 

я использовал:

redirectMatch 301 ^/en-direct.php$ http://www.example.org/different-page/ 
redirectMatch 301 ^/en-direct.php?page=7$ http://www.example.org/news/ 
redirectMatch 301 ^/en-direct.php?page=8$ http://www.example.org/awesome-but-totally-different-page/ 

однако: я получаю http://www.example.org/different-page/ каждый раз со всеми параметрами со страницы переадресации (пример - http://www.example.org/different-page?page=7)

любая помощь будет высоко ценится.

ответ

2

Для того, чтобы соответствовать против строки запроса, вам нужно использовать mod_rewrite:

RewriteEngine On 

RewriteCond %{QUERY_STRING} ^page=7($|&) 
RewriteRule ^en-direct\.php$ http://www.example.org/news/ [L,R=301] 

RewriteCond %{QUERY_STRING} ^page=8($|&) 
RewriteRule ^en-direct\.php$ http://www.example.org/awesome-but-totally-different-page/ [L,R=301] 

RewriteCond %{QUERY_STRING} ^$ 
RewriteRule ^en-direct\.php$ http://www.example.org/different-page/ [L,R=301] 
+0

Спасибо. это сработало. но как добавить несколько параметров в RewriteCond? я бы сделал RewriteCond% {QUERY_STRING}^page = 7, another = 8 ($ | &)? –

+0

@AryehArmon это именно то, что будет выглядеть строка запроса, так что: RewriteCond% {QUERY_STRING}^page = 7 & another = 8 $ ' –

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