Как я могу переписать старый URL-адрес с помощью переменных на статическую html-страницу?


Я пытаюсь перенаправить старые URL-адреса на новые URL-адреса, старый сайт использовал переменные в URL-адресе, но новый сайт использует SEO-дружественные URL-адреса.

Когда я пытаюсь перенаправить старый URL-адрес, он перенаправляется неправильно, и я получаю 404 ошибки. Я не уверен, что переписывание SEO является причиной сбоя другого условия перезаписи.

Options +FollowSymlinks RewriteEngine On

RewriteCond %{HTTP_HOST} ^example.com    
RewriteRule (.*) http://www.example.com/$1 [R=301,L] RewriteRule ^(.+).html index.php?seo_title=$1 [nc]    
Redirect 301 /WEBPAGE http://www.example.com/WEBPAGE.html    
RewriteRule ^http://www.example.co.uk/test/test.php?c=viewtest&id=56&sat=9&mainsat=1&start=0$ http://www.example.com/NEW_URL.html
ErrorDocument 404 /PAGE_NOT_FOUND.html

Вопрос: Как я могу написать RewriteRule так, чтобы он перенаправлял старый URL-адрес?

Author: Simon Hayter, 2010-10-11

2 answers

Проблема, которую я обнаружил, заключалась в том, что URL-адрес разделен между файлом и переменными, как и следовало ожидать.

Таким образом, все, что следует за ?, принимается в качестве строки запроса.

Вам нужно добавить условие для проверки строки запроса (вы можете включить регулярные выражения)

RewriteCond %{QUERY_STRING} ^viewtest&id=56&sat=9&mainsat=1&start=0$  
RewriteRule ^/test/test.php$ http://www.example.com/WEBPAGE.html? [R=301,L]

Кроме того, обратите внимание на ? после перенаправленного URL-адреса, это останавливает добавление переменных к новому URL-адресу

 2
Author: Craig Angus, 2018-10-05 15:20:52

Вы можете использовать перенаправление javascript на определенных страницах, если это возможно в вашем случае.

 0
Author: Amit Kumar Gupta, 2010-10-12 02:07:13