@KVX

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

Есть параметрические урлы типа /catalog/page.php?id=a
Нужно сделать со всех таких страниц 301-редирект на страницы вида /catalog/page.php@id=a
То есть урлы такие же, только символ ? заменен на @
Помогите сделать htaccess для такого редиректа.
  • Вопрос задан
  • 19 просмотров
Пригласить эксперта
Ответы на вопрос 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
Похожие вопросы