13 вариантов www / без www - что выбать?

Статус
В этой теме нельзя размещать новые ответы.

blacks

Местный житель
Регистрация
26 Сен 2008
Сообщения
391
Реакции
24
Здравствуйте.

У меня на сайте сейчас включена ниже следующая функция:
Код:
	RewriteEngine on
	RewriteCond %{HTTP_HOST} (www\.)?forum\.site.ru\.ru$
	RewriteCond %{REQUEST_URI} !^(/)?forum/
	RewriteRule ^(.*)$ forum/$1

Она работает так чтоб по адресу

Недавно узнал о такой штуке как "склейка"
- как понял полезно для SEO и является "хорошим тоном"
Решил сделать склейку для всех своих проектов. Начал изучать.
В htaccess я достаточно слаб поэтому искал готовый пример.
Результат: 13 вариантов :(

Прошу вас помочь выбрать самую оптимальную модель.
(просто напишите версию кода и почему ее нужно использовать)

Всем откинувшимся ОГРОМНОЕ спасибо!


Ver.1 by gentoouser
Код:
		RewriteEngine On
		RewriteBase /
		RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
		RewriteRule (.*) http://site.ru/$1 [R=301]

Ver.2 by bueno
Код:
		RewriteEngine on
		RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
		RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Ver.3
Код:
		RewriteEngine on
		RewriteCond %{HTTP_HOST} ^www.site.ru$
		RewriteRule ^(.*)$ http://site.ru/$1 [NC,R=301,L]

Ver.4
Код:
		RewriteEngine on
		RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.site.ru$
		RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Ver.5
Код:
		RewriteEngine on
		RewriteCond %{HTTP_HOST} ^www
		RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]


Ver.6 by obnon
Код:
		RewriteEngine On
		RewriteCond %{HTTP_HOST} ^site.com [NC]
		RewriteRule ^(.*)$ http://www.site.com/$1 [L,R=301]


Ver.7 (?!) by s2s
Код:
		Options +FollowSymLinks
		RewriteEngine on
		RewriteCond %{HTTP_HOST} ^site\.ru
		RewriteRule ^(.*)$ http://www.site.ru/$1 [R=permanent,L]


Ver.8 by xzorro
Код:
		Options +FollowSymLinks
		RewriteEngine on
		RewriteBase /
	
		RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
		RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]


Ver.9 by serjinio
Код:
		RewriteCond %{HTTP_HOST} ^site.ru$ [NC]
		RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]


Ver.10 by BDSG
(а я так на www перебрасываю - нет необходимости хост прописывать..)

Код:
		RewriteCond %{HTTP_HOST} !^www [NC]
		RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]


Ver.11 by no-www.org
Код:
		RewriteEngine On
		RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
		RewriteRule ^(.*)$ http://%1/$1 [R=301,L]


Ver.12 by Евлампий
("В случае если надо чтобы было с www")

Код:
		Options +FollowSymLinks
		RewriteEngine on
		RewriteCond %{HTTP_HOST} ^domain\.com
		RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L]

		RewriteBase /
		RewriteCond %{REQUEST_FILENAME} !-f
		RewriteCond %{REQUEST_URI} !(.*)/$
		RewriteRule ^(.*)$ http://www.domain.com/$1/ [L,R=301]


Ver.13 by GRAF76
Код:
		RewriteEngine On
		RewriteCond %{HTTP_HOST} ^pop\.com$
		RewriteRule ^(.*)$ http://www.pop.com/$1 [R=301,L,QSA]


PS:
NC
- no case
- не различать в URL прописные и строчные буквы

L
- last
- после этой директивы дальнейший анализ директив RewriteRule
- останавливается и прочие директивы не исполняются

R=301
- redirect 301
- сообщить юзеру о перенаправлении
 
ИМХО www - это историческая ошибка. А для склейки достаточно в robots.txt прописать нужный хост.
 
ИМХО www - это историческая ошибка. А для склейки достаточно в robots.txt прописать нужный хост.

Уфф.. Хоть кто-то откинулся!
Предложение конечно заманчивое но обоснуйте почему?
Плюс в инете столько разных предложений по склейке и все с htaccess что отходить от правил как-то неправильно :ah:

Господа посетители и постоянные жителе данного форма
Подскажите плиз что выбрать из этих 13ти клятых в-тов :nezn: !?
 
Всегда пользовался
RewriteCond %{HTTP_HOST} ^site\.com$

RewriteRule ^(.*)$ http://www.site.com/$1 [R=301,L,QSA]
проблем не замечал.

Если не передаются данные методом GET, флаг QSA можно опустить.
 
ИМХО www - это историческая ошибка. А для склейки достаточно в robots.txt прописать нужный хост.

А в чём, собственно ошибка? Чтобы не открывать тему? Что-то никогда не встречал такого мнения.
Кстати, если хостер сам склеивает www и без него - это плохо. Имею ввиду то факт, что в настройках панели хостинга того нигде не указано.
 
Кстати, если хостер сам склеивает www и без него - это плохо.
Что-то я такого не встречал.

А в чём, собственно ошибка?
Наверное имеется в виду, что domain и Для просмотра ссылки Войди или Зарегистрируйся - это технически 2-а различных домена.
В эпоху зарождения web, сайты размещались в основном только на Для просмотра ссылки Войди или Зарегистрируйся. При заходе просто по domain выдавало, что сайта не существует.
Ещё несколько лет назад множество крупных старых сайтов открывались только по Для просмотра ссылки Войди или Зарегистрируйся.
Сейчас это уже не особо актуально.
 
Всегда пользовался
проблем не замечал.

Если не передаются данные методом GET, флаг QSA можно опустить.

Спасибо.
А не прокомментируете почему так много вариантов получилось?
Точнее в чем отличие?

Извините если напряг вопросом.
 
Долго описывать.
Все они делают одно и тоже разными способами.
 
Если не передаются данные методом GET, флаг QSA можно опустить.
- подскажите пожалуйста: говоря про метод get вы имели ввиду формы?
- не могу понять ставить мне QSA или нет?
 
говоря про метод get вы имели ввиду формы?
Не обязательно - гетом можно передавать и через форму и непосредственно через URL.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху