[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: 301 редирект + mod rewrite
Slays
Давно тут не был, всем привет =)

Проблемка такая возникла, не могу правильно соединить два запроса .htaccess

Во-первых надо, чтобы вел 301 редирект с сайта с www на без www


RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.ru$ [NC]
RewriteRule ^(.*)$ http://example.ru/$1 [R=301,L]


Во-вторых, обычный mod rewrite урлов, чтоб они выглядели типо http://example.ru/page.html

RewriteRule ^(.*).html$ index.php?route=$1 [L,QSA]


надо чтобы с http://www.example.ru/page.html редиректилось на http://example.ru/page.html, но чото то одно не работает, то другое, то с http://www.example.ru/page.html редиректит на http://example.ru/index.php?route=page, то ваще ничего не происходит

Кто в этом силен user posted image



Спустя 16 часов, 38 минут, 45 секунд (15.04.2011 - 16:06) Slays написал(а):
эксперты, хелп user posted image

Спустя 1 час, 50 минут, 13 секунд (15.04.2011 - 17:56) Stuff_f написал(а):
RewriteEngine On
RewriteBase /
# В переменную окружения %{ENV:PROTOCOL} помещаем протокол
RewriteRule ^(.*)$ - [E=PROTOCOL:http]
RewriteCond %{HTTPS} ^on$ [NC]
RewriteRule ^(.*)$ - [E=PROTOCOL:https]
# Если нужно убираем www
RewriteCond %{SERVER_PORT} ^80$
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ %{ENV:PROTOCOL}://%1%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ %{ENV:PROTOCOL}://%1:%{SERVER_PORT}%{REQUEST_URI} [R=301,L]
</IfModule>

Спустя 3 часа, 54 минуты, 25 секунд (15.04.2011 - 21:51) Slays написал(а):
как то тут сложно все, не понятно, все равно же с этим
RewriteRule ^(.*).html$ index.php?route=$1 [L,QSA]

совместить не получается, тут только 301-й редирект. user posted image


Спустя 13 минут, 44 секунды (15.04.2011 - 22:05) Stuff_f написал(а):
я не пойму вам нужно убрать WWW или я не правильно понял?

Спустя 5 минут, 9 секунд (15.04.2011 - 22:10) Stuff_f написал(а):
если убрать то вот
проще:

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^/?(.*) http://%1/$1 [L,R=permanent]


Спустя 46 минут, 34 секунды (15.04.2011 - 22:56) Slays написал(а):
Stuff_f
с WWW нужен 301 редирект на БЕЗ WWW, но в тоже время и данное условие работать должно:
RewriteRule ^(.*).html$ index.php?route=$1 [L,QSA]


т.е. по сути все страницы имеют адреса типа
http://site.ru/index.php?route=about

через mod rewrite мы переделываем их в
http://site.ru/about.html

но при этом и с www есть
http://www.site.ru/about.html

добавляю редирект, открываю http://www.site.ru/about.html и вместо нужного http://site.ru/about.html открывается http://site.ru/index.php?route=about

не могу вот совместить эти два условия
user posted image

Спустя 7 минут, 3 секунды (15.04.2011 - 23:03) Stuff_f написал(а):
после RewriteEngine On добавьте:
RewriteCond %{HTTP_HOST} ^www.example.ru$ [NC]
RewriteRule ^(.*)$ http://example.ru/$1 [R=301,L]
вот пробуйте

Спустя 4 минуты, 3 секунды (15.04.2011 - 23:07) Stuff_f написал(а):
можно и через редирект делать

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.ru/newdir/newpage.htm");
exit();
?>

таким способом

Спустя 2 минуты, 33 секунды (15.04.2011 - 23:10) Stuff_f написал(а):
или такое попробуйте

Redirect 301 /site1/page1.htm http://www.site2.com/page2.htm
вариантов тьма

Спустя 17 минут, 53 секунды (15.04.2011 - 23:28) Slays написал(а):
блин, странно, ведь именно данный способ я с самого начала и пробовал
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.ru$ [NC]
RewriteRule ^(.*)$ http://example.ru/$1 [R=301,L]


все работает теперь, видимо не в том порядке указывал или опечатался где-то.
В любом случае спасибо !!!

Спустя 2 минуты, 58 секунд (15.04.2011 - 23:31) Stuff_f написал(а):
laugh.gif


_____________
если помог, не скупись на карму =)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.