301 редирект в htaccess

1 23
Lion_astana
На сайте с 22.12.2012
Offline
53
#21

siv1987, спасибо!!!! Действительно работает!

Только знаешь в чем нюанс: сначала 301 редирект со старого адреса на новый на на без www, а от туда уже идет созданное в начале htaccess правило на 301 редирект на страницу уже с www.

Может и не страшно, просто интересно почему при такой же конструкции, которую ты мне помог сделать ранее идет перенаправление на сайт с www, а теперь с двумя переменными на сайт без www?

Не сможешь подсказать, может есть какие-то "подводные камни"?

---------- Добавлено 18.01.2013 в 22:53 ----------

Т.е. сейчас так:

Ответ сервера при вводе http://www.site.ru/script.php?cat=12 ==>> 301 на http://site.ru/tovary, т.е. без www в конечном адресе.

Ну и соответственно при вводе http://site.ru/tovary ==>> 301 на http://www.site.ru/tovary

---------- Добавлено 18.01.2013 в 22:55 ----------

Что не так, почему не идет перенаправление со старого адреса на новый но с www?

---------- Добавлено 18.01.2013 в 23:10 ----------

Вот весь Htaccess:

Options +FollowSymLinks

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]

RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

RewriteRule ^index\.php$ http://www.site.ru/ [R=301,L]

ErrorDocument 404 /404.php

# Редирект 301 со старого адреса категории на новый и преобразование старого адреса категории на новый

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteCond %{QUERY_STRING} ^cat=1$

RewriteRule ^script\.php$ /avtozapchasti? [R=301,L]

RewriteRule ^avtozapchasti$ /script.php?cat=1 [L]

# редирект /script.php?cat=1&page=1 => /avtozapchasti/page/1/ и преобразование адреса с навигацией страниц

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteCond %{QUERY_STRING} ^cat=1&page=(\d+)

RewriteRule ^script\.php$ /avtozapchasti/page/%1/? [R=301,L]

RewriteRule ^avtozapchasti/page/(\d+)/$ /script.php?cat=1&page=$1 [L]

---------- Добавлено 19.01.2013 в 00:02 ----------

siv1987, есть предположения, почему так?

siv1987
На сайте с 02.04.2009
Offline
427
#22

Предположений нету, ну попробуйте заменить в редиректе относительные адреса на полные.

RewriteRule ^script\.php$ http://www.site.ru/avtozapchasti? [R=301,L]

...

RewriteRule ^script\.php$ http://www.site.ru/avtozapchasti/page/%1/? [R=301,L]

IL
На сайте с 20.04.2007
Offline
435
#23
siv1987:
Предположений нету, ну попробуйте заменить в редиректе относительные адреса на полные.

Видимо, потому что {ENV:REDIRECT_STATUS}

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
Lion_astana
На сайте с 22.12.2012
Offline
53
#24

siv1987, Спасибо, сейчас попробую, отпишусь.

ivan-lev,

Видимо, потому что {ENV:REDIRECT_STATUS}
, что вы имеете ввиду?
IL
На сайте с 20.04.2007
Offline
435
#25
Lion_astana:
ivan-lev, , что вы имеете ввиду?

В условии

RewriteCond %{ENV:REDIRECT_STATUS} ^$

указано, что редирект выполняется только если перед этим не было редиректа .. т.е. второй и последующий редиректы при обращении к одному адресу не отрабатывают.

Lion_astana
На сайте с 22.12.2012
Offline
53
#26
siv1987:
Предположений нету, ну попробуйте заменить в редиректе относительные адреса на полные.

RewriteRule ^script\.php$ http://www.site.ru/avtozapchasti? [R=301,L]
...
RewriteRule ^script\.php$ http://www.site.ru/avtozapchasti/page/%1/? [R=301,L]

Да, прописал полные пути в htaccess, все встало на свои места.

---------- Добавлено 19.01.2013 в 16:27 ----------

siv1987, ОГРОМНОЕ ТЕБЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО!!!!

1 23

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий