@KVX

Как сделать 301-редирект через htaccess с заменой символа?

Есть параметрические урлы типа /catalog/page.php?id=a
Нужно сделать со всех таких страниц 301-редирект на страницы вида /catalog/page.php@id=a
То есть урлы такие же, только символ ? заменен на @
Помогите сделать htaccess для такого редиректа.
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ответы на вопрос 2
RewriteCond %{QUERY_STRING} (^|&)id=(.+)($|&)
RewriteRule ^catalog/page\.php$ /catalog/page.php@id=%2 [L,R=301]

ну или экранировтаь собаку
RewriteCond %{QUERY_STRING} (^|&)id=(.+)($|&)
RewriteRule ^catalog/page\.php$ /catalog/page.php\@id=%2 [L,R=301]

А нахрена вам сей символ в урле ?
Ответ написан
@KVX
Виктор спасибо, почти получилось!
С этим кодом редирект идет на страницу /catalog/page.php@id=a?id=a , можно ли сделать чтобы в конце урла не было ?id=a , то есть было просто /catalog/page.php@id=a ?

А задача такая возникла потому, что потерян доступ к сайту и хостингу, и чтобы пока как-то можно было редактировать сайт скачал его в виде статики, разместил на другом хостинге. Но на статике параметрические урлы не воспроизвести и при скачивании в урлах менялся символ ? на @
И нужно чтобы кто заходит по старым адресам с поисковиков редиректились на соответствующую страницу с новым адресом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы