Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > htaccess редирект на страницы


Автор: Digo 9.11.2018, 17:36
Здравствуйте,
каким образом можно организовать редирект через htaccess таким образом:
определенные страницы со старого сайта на другие страницы нового домена
а остальные страницы старого домена на главную нового домена

Автор: ksnk 9.11.2018, 18:31
что-то вроде такого

Код

Redirect 301 /a.html http://mewsite.ru/a.html
Redirect 301 /b.html http://mewsite.ru/b.html
..
RewriteEngine on
RewriteRule .* http://mewsite/ [L,R=301]


301 - для того, чтобы больше не ходили.

Автор: Digo 12.11.2018, 17:04
Спасибо!

Автор: Digo 14.11.2018, 17:48
проблема такая сразу не заметил, если оставляю строку нижнюю
RewriteEngine on
RewriteRule .* http://mewsite/ [L,R=301]

игнорирует все выше прописанные редиректы и перебрасывает на главную

Автор: ksnk 14.11.2018, 21:33
А если 
RewriteEngine on

перенести вверх файла ?

Возможно, L в последнем правиле лишний

Автор: Digo 15.11.2018, 17:27
попробовал в разных вариантах, пока нет RewriteRule .* условия отрабатываются, как только появляется полностью игнорируются, ставлю RewriteRule .* в самом низу после всех условий

Автор: ksnk 15.11.2018, 20:06
Сайт-то один и тот же?

Это на одном и том же сайте оба домена ? Тогда, наверное в последнем правиле ума не хватает . Можно еще домен проверять в дополнительном правиле, или что-то такое
Код

Options -Indexes 

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On

Redirect 301  /catalog/vodosnabzhenie_i_gazosnabzhenie/zashchita_ot_protechek/1 http://newsite/catalog/sistema_zashchity_ot_potopa_neptun_aquacontrol_1_2/
... тут  еще  5000 редиректов 
Redirect 301  /catalog/vodosnabzhenie_i_gazosnabzhenie/zashchita_ot_protechek/2 http://newsite/catalog/sistema_zashchity_ot_potopa_neptun_aquacontrol_3_4/

  RewriteCond %{REMOTE_HOST} !^newsite*
  RewriteRule  http://newsite/ [L,R=301]
</IfModule>


Автор: Digo 16.11.2018, 10:09
Там нужно сделать редирект с одного сайта на другой, так чтобы определенные страницы с старого сайта переходили на определенные страницы нового, а все остальные со старого на главную нового получается что то типа:
Код

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On
   
  Redirect 301 /index.php http://copier.spb.ru/zapravka-kartridzhej/
  Redirect 301 /cartridges/145/ http://copier.spb.ru/zapravka-kartridzhej/zapravka-kartridzhej-hp/
  ......
  
  #RewriteRule .* http://copier.spb.ru/ [L,R=301]
  RewriteCond %{REMOTE_HOST} !^copier.spb.ru*
  RewriteRule  http://copier.spb.ru/ [L,R=301]
</IfModule>


в таком виде если набираю несуществующую страницу он переходит на старый сайт, если раскоментирую  RewriteRule .* http://copier.spb.ru/ [L,R=301] то игнорируются все правила редиректов и по любому адресу перекидывает на новую главную.

Автор: ksnk 16.11.2018, 13:09
Ну, можно попробовать вместо rewriteRule использовать RedirectMatch
RedirectMatch (.*) http://copier.spb.ru/


Автор: Digo 16.11.2018, 14:42
спасибо большое вот это то что нужно!

Автор: Digo 17.11.2018, 12:05
еще одну проблемку заметил есть редиректы вида:
Код

Redirect 301 /cartridges/146/ http://copier.spb.ru/zapravka-kartridzhej/zapravka-kartridzhej-canon/

они отлично работают но есть страницы вида например    http://www.7168800.ru/cartridges/146/2699  они отрабатывают при переходе 
http://copier.spb.ru/zapravka-kartridzhej/zapravka-kartridzhej-canon/2699
т.е. в конец добавляется 2699, что создает ненужные дубли можно ли сделать так чтобы либо эти цифры не добавлялись в строке, либо просто перекидывало на главную если есть подпапки?

Автор: ksnk 19.11.2018, 17:30
Возможно, тоже поможет RedirectMatch, только нужно указывать в конце регулярки $ и не забывать эскейпить точку.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)