Считаю до трех
С нами с 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 (в разных вариациях)
Нихрена не работает.
Как такой редирект сделать?
|
|
|
|
С нами с 20.01.03
Сообщения: 18003
Рейтинг: 9760
|
Добавлено: 02/04/13 в 20:41 |
RewriteEngine on
RewriteRule ^index\.shtml\?page=([0-9]+)$ /classic/index.shtml?page=$1 [L]
|
|
|
|
Считаю до трех
С нами с 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]
ХЗ правда как лучше.
|
|
|
|
С нами с 20.01.03
Сообщения: 18003
Рейтинг: 9760
|
Добавлено: 02/04/13 в 20:49 |
какое больше нравится
да, R=301, если он нужен, нужно в верхний вариант добавить по аналогии
|
|
|
|
С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032
|
Добавлено: 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 |
Ну мой вариант точно работает, проверено
|
|
|
|
С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032
|
Добавлено: 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
|
Добавлено: 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]
|
|
|
|
С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032
|
Добавлено: 03/04/13 в 01:30 |
SAV писал: | что именно не работает?
в акцесе такие строки, уже мхом обросли, все работает
RewriteRule ^free-([^/]*)/?.*$ /jump_sutra.php?tag=$1 [L,QSA] |
У тебя мхом оброс матчинг query string в RewriteRule? Поздравляю
|
|
apache, bash, css, elasticsearch, ffmpeg, html, js, mysql, mongo, nginx, php; *nix only
|
0
|
|
|
С нами с 20.01.03
Сообщения: 18003
Рейтинг: 9760
|
Добавлено: 03/04/13 в 08:22 |
johndoe2 писал: | У тебя мхом оброс матчинг query string в RewriteRule? Поздравляю |
понял тебя, с утра
|
|
|
|