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

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем blacks, 10 май 2009.

Статус темы:
Закрыта.
  1. blacks

    blacks

    Регистр.:
    26 сен 2008
    Сообщения:
    391
    Симпатии:
    24
    Здравствуйте.

    У меня на сайте сейчас включена ниже следующая функция:
    Код:
    	RewriteEngine on
    	RewriteCond %{HTTP_HOST} (www\.)?forum\.site.ru\.ru$
    	RewriteCond %{REQUEST_URI} !^(/)?forum/
    	RewriteRule ^(.*)$ forum/$1
    Она работает так чтоб по адресу
    http://forum.site.ru/ и http://wwww.forum.site.ru/
    выдавалось содержание папок:
    http://www.site.ru/forum/ и http://site.ru/forum
    Недавно узнал о такой штуке как "склейка"
    - как понял полезно для 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
    - сообщить юзеру о перенаправлении
     
  2. kr0lik1

    kr0lik1 Создатель

    Регистр.:
    13 июн 2007
    Сообщения:
    28
    Симпатии:
    3
    ИМХО www - это историческая ошибка. А для склейки достаточно в robots.txt прописать нужный хост.
     
  3. blacks

    blacks

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

    Господа посетители и постоянные жителе данного форма
    Подскажите плиз что выбрать из этих 13ти клятых в-тов :nezn: !?
     
  4. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Всегда пользовался
    проблем не замечал.

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

    anabioz

    Регистр.:
    20 май 2007
    Сообщения:
    212
    Симпатии:
    26
    А в чём, собственно ошибка? Чтобы не открывать тему? Что-то никогда не встречал такого мнения.
    Кстати, если хостер сам склеивает www и без него - это плохо. Имею ввиду то факт, что в настройках панели хостинга того нигде не указано.
     
  6. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Что-то я такого не встречал.

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

    blacks

    Регистр.:
    26 сен 2008
    Сообщения:
    391
    Симпатии:
    24
    Спасибо.
    А не прокомментируете почему так много вариантов получилось?
    Точнее в чем отличие?

    Извините если напряг вопросом.
     
  8. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Долго описывать.
    Все они делают одно и тоже разными способами.
     
    blacks нравится это.
  9. blacks

    blacks

    Регистр.:
    26 сен 2008
    Сообщения:
    391
    Симпатии:
    24
    - подскажите пожалуйста: говоря про метод get вы имели ввиду формы?
    - не могу понять ставить мне QSA или нет?
     
  10. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Не обязательно - гетом можно передавать и через форму и непосредственно через URL.
     
Статус темы:
Закрыта.