Как я могу переписать старый 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-адрес?
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-адресу
Вы можете использовать перенаправление javascript на определенных страницах, если это возможно в вашем случае.