Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Проблема с редиректом через htaccess
Новая тема
Ответить
цитата
02/04/13 в 20:22
EagleOwl
На некоторых доменах переместились страницы архивов на новый путь.
Например, было:
domain.com/index.shtml?page=1
domain.com/index.shtml?page=2
...
domain.com/index.shtml?page=20
Стало так:
domain.com/classic/index.shtml?page=1
domain.com/classic/index.shtml?page=2
...
domain.com/classic/index.shtml?page=20
Нужно реализовать редирект с кодом 301 на новые урлы.
Проблема состоит в том, что на прежнем месте есть index.shtml, но он
уже никак не может обработать параметр ?page
Т.е. надо редиректить только те запросы, которые содержат параметр
?page и не трогать другие. Ну и значение параметра тоже передать нужно
конечно.
Я пробовал такой .htaccess (в разных вариациях)
Код:
RedirectMatch 301 ^/index.shtml\?page=(.*)$
http://www.domain.com/classic/index.shtml?page=$1
Нихрена не работает.
Как такой редирект сделать?
цитата
02/04/13 в 20:41
SAV
RewriteEngine on
RewriteRule ^index\.shtml\?page=([0-9]+)$ /classic/index.shtml?page=$1 [L]
цитата
02/04/13 в 20:46
EagleOwl
Спасибо, я чуть иначе сделал, но этот метод счас тоже буду пробовать.
Я так сделал по совету саппорта:
RewriteCond %{QUERY_STRING} ^page=([0-9]*)$
RewriteRule ^index\.shtml$
http://www.domain.com/classic/index.shtml?page=%1
[R=301,L]
ХЗ правда как лучше.
цитата
02/04/13 в 20:49
SAV
какое больше нравится
да, R=301, если он нужен, нужно в верхний вариант добавить по аналогии
цитата
02/04/13 в 20:50
johndoe2
RewriteRule
не
работает на параметрах запроса. Он матчит только path
Код:
RewriteEngine on
RewriteCond %{QUERY_STRING} page=
RewriteRule ^index\.shtml$ /classic/index.shtml [L,QSA,R=301]
цитата
02/04/13 в 20:55
EagleOwl
Ну мой вариант точно работает, проверено
цитата
02/04/13 в 20:58
johndoe2
EagleOwl писал:
Ну мой вариант точно работает, проверено
Я про то, что SAV написал. Поддержка тебе все правильно научила
цитата
02/04/13 в 23:04
SAV
johndoe2 писал:
RewriteRule
не
работает на параметрах запроса. Он матчит только path
Код:
RewriteEngine on
RewriteCond %{QUERY_STRING} page=
RewriteRule ^index\.shtml$ /classic/index.shtml [L,QSA,R=301]
что именно не работает?
в акцесе такие строки, уже мхом обросли, все работает
RewriteRule ^free-([^/]*)/?.*$ /jump_sutra.php?tag=$1 [L,QSA]
цитата
03/04/13 в 01:30
johndoe2
SAV писал:
что именно не работает?
в акцесе такие строки, уже мхом обросли, все работает
RewriteRule ^free-([^/]*)/?.*$ /jump_sutra.php?tag=$1 [L,QSA]
У тебя мхом оброс матчинг
query string
в RewriteRule? Поздравляю
цитата
03/04/13 в 08:22
SAV
johndoe2 писал:
У тебя мхом оброс матчинг
query string
в RewriteRule? Поздравляю
понял тебя, с утра
Новая тема
Ответить
Эта страница в полной версии