Реклама на сайте Advertise with us

Проблема с редиректом через htaccess

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Считаю до трех

С нами с 23.03.05
Сообщения: 12353
Рейтинг: 2918

Ссылка на сообщениеДобавлено: 02/04/13 в 20:22       Ответить с цитатойцитата 

На некоторых доменах переместились страницы архивов на новый путь.

Например, было:
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


Нихрена не работает.
Как такой редирект сделать?

0
 



С нами с 20.01.03
Сообщения: 18003
Рейтинг: 9760


Передовик Master-X (01.03.2005) Передовик Master-X (16.03.2005) Передовик Master-X (16.10.2016) Передовик Master-X (01.11.2016) Передовик Master-X (16.11.2016) Ветеран трепа Master-X (01.12.2016)
Ссылка на сообщениеДобавлено: 02/04/13 в 20:41       Ответить с цитатойцитата 

RewriteEngine on
RewriteRule ^index\.shtml\?page=([0-9]+)$ /classic/index.shtml?page=$1 [L]

8
 

Считаю до трех

С нами с 23.03.05
Сообщения: 12353
Рейтинг: 2918

Ссылка на сообщениеДобавлено: 02/04/13 в 20:46       Ответить с цитатойцитата 

Спасибо, я чуть иначе сделал, но этот метод счас тоже буду пробовать.
Я так сделал по совету саппорта:
RewriteCond %{QUERY_STRING} ^page=([0-9]*)$
RewriteRule ^index\.shtml$ http://www.domain.com/classic/index.shtml?page=%1 [R=301,L]

ХЗ правда как лучше.

0
 



С нами с 20.01.03
Сообщения: 18003
Рейтинг: 9760


Передовик Master-X (01.03.2005) Передовик Master-X (16.03.2005) Передовик Master-X (16.10.2016) Передовик Master-X (01.11.2016) Передовик Master-X (16.11.2016) Ветеран трепа Master-X (01.12.2016)
Ссылка на сообщениеДобавлено: 02/04/13 в 20:49       Ответить с цитатойцитата 

какое больше нравится

да, R=301, если он нужен, нужно в верхний вариант добавить по аналогии

8
 



С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032


Передовик Master-X (16.11.2012)
Ссылка на сообщениеДобавлено: 02/04/13 в 20:50       Ответить с цитатойцитата 

RewriteRule не работает на параметрах запроса. Он матчит только path

Код:
RewriteEngine on

RewriteCond %{QUERY_STRING} page=
RewriteRule ^index\.shtml$ /classic/index.shtml [L,QSA,R=301]

apache, bash, css, elasticsearch, ffmpeg, html, js, mysql, mongo, nginx, php; *nix only

4
 

Считаю до трех

С нами с 23.03.05
Сообщения: 12353
Рейтинг: 2918

Ссылка на сообщениеДобавлено: 02/04/13 в 20:55       Ответить с цитатойцитата 

Ну мой вариант точно работает, проверено

0
 



С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032


Передовик Master-X (16.11.2012)
Ссылка на сообщениеДобавлено: 02/04/13 в 20:58       Ответить с цитатойцитата 

EagleOwl писал:

Ну мой вариант точно работает, проверено


Я про то, что SAV написал. Поддержка тебе все правильно научила

apache, bash, css, elasticsearch, ffmpeg, html, js, mysql, mongo, nginx, php; *nix only

9
 



С нами с 20.01.03
Сообщения: 18003
Рейтинг: 9760


Передовик Master-X (01.03.2005) Передовик Master-X (16.03.2005) Передовик Master-X (16.10.2016) Передовик Master-X (01.11.2016) Передовик Master-X (16.11.2016) Ветеран трепа Master-X (01.12.2016)
Ссылка на сообщениеДобавлено: 02/04/13 в 23:04       Ответить с цитатойцитата 

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]

0
 



С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032


Передовик Master-X (16.11.2012)
Ссылка на сообщениеДобавлено: 03/04/13 в 01:30       Ответить с цитатойцитата 

SAV писал:
что именно не работает?

в акцесе такие строки, уже мхом обросли, все работает
RewriteRule ^free-([^/]*)/?.*$ /jump_sutra.php?tag=$1 [L,QSA]


У тебя мхом оброс матчинг query string в RewriteRule? Поздравляю trollface.png

apache, bash, css, elasticsearch, ffmpeg, html, js, mysql, mongo, nginx, php; *nix only

0
 



С нами с 20.01.03
Сообщения: 18003
Рейтинг: 9760


Передовик Master-X (01.03.2005) Передовик Master-X (16.03.2005) Передовик Master-X (16.10.2016) Передовик Master-X (01.11.2016) Передовик Master-X (16.11.2016) Ветеран трепа Master-X (01.12.2016)
Ссылка на сообщениеДобавлено: 03/04/13 в 08:22       Ответить с цитатойцитата 

johndoe2 писал:
У тебя мхом оброс матчинг query string в RewriteRule? Поздравляю trollface.png

понял тебя, с утра icon_mrgreen.gif

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »