Standard template for elimination of WWW - analysis of a code

Тема в разделе "SEO - оптимизация, продвижение", создана пользователем sergey113, 28.12.2014.

  1. Offline

    sergey113 Недавно здесь

    Регистрация:
    07.06.2013
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    I perform tuning of the site.
    For SEO it is necessary to register such rules in .htaccess

    Код (PHP):
    1. RewriteEngine on
    2. RewriteCond of % {HTTP_HOST}! ^example.com$
    3. RewriteRule ^ (. *) http://example.com/of $1 [R=301,L]


    I try to understand a code.
    There was a question on the last RewriteRule term.
    Code ^ (. *) causes the last variable = www .example.com
    And then this variable is added to url which is caused instead of the www .example.com server requested at a web
    This design looks so http://example.com/www.example.com!
    And what for? I can something isn't present so understood. correct me please.

    ps. At an insert in a line of the http://example.com/www.example.com browser
    I get on my site. And what URL allows to process correctly?

     
  2.  
  3. Лучший ответ:
    Сообщение #14 от 28.12.2014, автор OlegM
  4. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Стоило убрать из названия форума "поддержки на русском", так пошли вопросы на английском, причем от людей с "русскими" никами-именами. :(
    --- добавлено: 28.12.2014, первое сообщение размещено: 28.12.2014 ---
    Код (CODE):
    1. ##### Redirect www to non-www -- BEGIN
    2. RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    3. RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
    4. ##### Redirect www to non-www -- END
     
  5. Offline

    sergey113 Недавно здесь

    Регистрация:
    07.06.2013
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    :) При создании поста выдается сообщение, что текст должен быть только на английском. Поэтому черзе транслит пришлось переводить суть своего вопроса.

    Видел такие варианты или похожие, с ними ясности не больше чем с моим.
    Я купил хостинг на sprinthost.ru и пользуюсь их инструкцией
    http://sprinthost.ru/support/howto/htaccess.html#hidden
    Вопрос все эе остается прежним. Разбор последней строчи кода и вопрос с корректной обработкой браузером ссылки типа http://example.com/www.example.com
     
  6. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Забавно... :confused:
    К теме не имеет отношения, но как администратор прошу пояснить - где, когда вывелось такое.
     
  7. Offline

    sergey113 Недавно здесь

    Регистрация:
    07.06.2013
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    При создание новой темы появилась промежуточная страница с требованием написанным красным шрифтом, чтобы текст писался на английском и еще второе какое-то требование.. какое забыл
    соглашаешься - жмешь кнопку - перенаправляет на страницу создания новой темы
     
  8. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Оффтопик (не в тему) - жми сюда!


    По теме - опиши на русском, что требуется сделать?
    Возможно стоит прописать RewriteBase
     
  9. Offline

    sergey113 Недавно здесь

    Регистрация:
    07.06.2013
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    Да форум был изначально на русском. Удивила надпись, что писать надо на английском. Подумал, что интерфейс переведен создателями и правила общения такие.
    --- добавлено: 28.12.2014 ---
    Перевод написанного в 1 посте:
    Выполняю рекомендации по первоначальной настройке своего сайта.
    В целях улучшения оптимизации предлагается прописать такие правила в .htaccess

    Код (PHP):
    1. RewriteEngine on
    2. RewriteCond %{HTTP_HOST} !^example.com$
    3. RewriteRule ^(.*) http://example.com/$1 [R=301,L]



    Пытаюсь разобрать код и у меня возник вопрос по концовке после RewriteRule кодом ^(.*) вызывается последняя переменная = www.example.com
    А затем эта единственная переменная добавляется к url который вызывается вместо запрошенного у веб сервера www.example.com
    Но это получается конструкция http://example.com/www.example.com !
    А зачем? может я что-то нет так понял.. поправте меня пожалуйста.

    ps. При вставке в строку браузера http://example.com/www.example.com получается выйти на мой сайт. А что позволяет правильно обработать URL?
     
    Последнее редактирование: 28.12.2014
  10. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Оффтопик (не в тему) - жми сюда!

    А по теме уже спрашивал )
     
  11. Offline

    sergey113 Недавно здесь

    Регистрация:
    07.06.2013
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    Регистрировался через форму на сайте
     
  12. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    1. удали из сообщений все кривые активные ссылки
    2. Повторю -
    Что хочешь сделать этим кодом?
    Не стоит бездумно вставлять в htaccess что попало...
     
  13. Offline

    sergey113 Недавно здесь

    Регистрация:
    07.06.2013
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    Эта рекомендация от хостеров. Я понимаю для чего она нужна и примерно как работает. Но прежде чем ее вставить хотел разобрать код и понять что и в какой момент происходит.
    Потратил ан это целый день, но поиском выдает однотипные шпаргалки без разбора кода. Пошел читать "учебники" по настройке .htaccess и ruby выражениям. Но нигде не прописанно, что означает конструкция ^(.*) например
    Сам уже прикинул что это камндная строка которая передает дерективе RewriteRule параметр. Видимо это парметр равен последней переменной после выполнения директивы RewriteCond, т.е. %{HTTP_HOST} и равен www.example.com

    Хочу, чтобы кто имеет по больше опыта подсказал, прав я или нет. Если я прав, то интересует еще почему бредовый url типа http://example.com/www.example.com возможен вообще и зачем это надо
    --- добавлено: 28.12.2014 ---
    Вообще я обнаружил, что мой движок joomla не настроен и есть опасность его взлома. Решил выполнить минимальные рекомендации по первоначальной настройке. статья от сюда
    http://wedal.ru/uroki-joomla/12-dejstvij-kotorye-nuzhno-sdelat-srazu-posle-ustanovki-joomla.html
    И пошел выполнять все по пунктам. НА одном из пунктов подзавис. Он конечно нужен для SEO но уже сцпеился с ним хочу добить
    --- добавлено: 28.12.2014 ---
    Ссылки - теоретические. Вместо имени моего сайт а подставлено имя сайта example.com.
    --- добавлено: 28.12.2014, первое сообщение размещено: 28.12.2014 ---
    Ни в простом режиме не в расширенном гиперрсылки не хотят удаляться. Делают вид что удалились, но при сохранении они опять являются гипперссылками
     
  14. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Конкретно тебе она зачем нужна? У тебя несколько хостов?

    По-русски код
    Код (CODE):
    1. RewriteCond %{HTTP_HOST} !^example.com$
    2. RewriteRule ^(.*) http://example.com/$1 [R=301,L]

    Означает, что если имя хоста (сайта) не равно example.com, то все запросы надо перенаправлять с кодом 301 на хост example.com, где $1 - URI (хвост запрос без имени домена).
    Конструкция (.*) означает любой запрос. Для понимания поможет изучение регулярных выражений.

    Чтобы не вставлялся домен, попробуй прописать после
    Код (CODE):
    1. RewriteEngine on

    Код (CODE):
    1. RewriteBase /
     
  15. Offline

    sergey113 Недавно здесь

    Регистрация:
    07.06.2013
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    У меня одно доменное имя для моего сайта, но в статье ссылку на которую я привел выше говориться что для поисковой системы сайт www.example.com и example.com.
    Это два разных сайта. И отсюда проблемы с SEO
    Строго говоря мне SEO не нужно, но в той статье есть этот пункт и я хотел его выполнить и забыть про него.

    Первую директиву RewriteCond я понял отлично он сравниевает запрос к системе joomla и если он такой - www.example.com.
    Т.е не равен (знак !) (^ признак команды) example.com ($ условие сравнения с конца строки - так как стоит справа от назавание сайта).

    Спасибо, что объяснили про (.*) - любой запрос.
    [R=301,L] я тоже понимаю... это однократная обработка переброса сервером редиректа с признаком 301 (наверно для поисковых систем важен этот признак)
    А вот
    $1 - URI (хвост запрос без имени домена)
    Это я не понял. То, что Вы говорите это не очивидно... я считаю, что это формирование ссылки http://example.com/www.example.com

    Я бы рад прочитать про регулярные выражения ruby особенно в конектсте настройки .htaccess. Но! не нашел хорошего источника. ЕСть самые общие мануалы с примерами математических выражений ... а таких http://example.com/$1 нет..
    --- добавлено: 28.12.2014, первое сообщение размещено: 28.12.2014 ---
    поразмыслив я пришел к выводу, что не с той мордой полез в калашый ряд :)
    Видимо это работате как Вы сказали, но это не очевидно для меня так как сам модуль mod_rewrite это вообще вещь в себе, а еще надо получше представлять как веб чсервер взаимодействует с этим модулем.
    Тогда пока постраюсь не разбираться с этим программистким бредом.. до тех пор пока действительно не приспичит.
    Огромное спасибо за помощь!
     
  16. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Лучший ответ
    ruby то причем здесь?

    В статье говорится про РАЗНЫЕ домены, т.е. если не example.com, а какой-нибудь example321.net.

    Для редиректа ссылок с WWW на ссылки без-WWW приведен универсальный код во 2-м сообщении.

    Конструкция ^ (крышка) - запрос, начиная с корня сайта. Т.е. для запроса http://joomla-support.ru/thread/45009/ конструкция ^(.*) означает thread/45009/ , т.е. в $1 попадет лишь эта часть.

    Спрошу еще раз - что у тебя в RewriteBase?
    Именно это и влияет, что будет считаться корнем сайта. Если там example.com, то конечно оно и будет подставляться
     
  17. Offline

    sergey113 Недавно здесь

    Регистрация:
    07.06.2013
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    Спасибо за участие.
    Ruby я приплел потому как в статьях которые читал говорится, что стиль выражений ruby ориентированный. И сам когда-то об это споткнулся, то ли скрипыт в линукс изучал, то ли конфигурационные файлы надо было понять для Usb устройств на своей Ubuntu. Действительно очень похожи...

    Нет в статье говориться так:
    Еще одна мелкая, но противная проблема Joomla кроется в том, что по умолчанию одна и та же страница сайта открывается как с www, так и без него. Например, вы можете обратиться к странице www.site.ru и site.ru. В обоих случаях будет открыта страница с указанным адресом. Эти страницы являются дублями и не сулят ничего хорошего в плане поисковой оптимизации.
    И у хостера тоже самое пишут:
    http://sprinthost.ru/support/howto/htaccess.html#hidden
    Про ^ огромное спасибо - не понимал...

    RewriteBase у хостера закоментирован. Я пока не буду его разкомментировать. Прочитал про RewriteBase тут:
    https://htmlweb.ru/php/htaccess-mod_rewrite-rewritebase.php
    Понял сильно сказано, но воспринял изложенное там. И мне кажется мне это не нужно. Сайт у меня и так работал.
     
  18. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Ничего не знаю про Ruby, но регулярки скорее из PCRE. Именно их и стоит сначала изучать независимо от прочих похожестей... по-моему...

    Мелкая, но противная особенность некоторых писак приплетать Джумле кучу вредностей... Хотя бы потому, что подобное поведение справедливо для многих CMS на совести разработчики, админа сайта, и естественно сеошника. Ну а все слухи от того, что сайты делают всякие фрики наученные видеокурсами горе-фрилансеры.

    Не нервируй меня, плиз, в который раз кидая ссылку НЕ НА ТО. :)
    По твоей ссылке открывается это

    Ogbqij8I.png
    --- добавлено: 28.12.2014, первое сообщение размещено: 28.12.2014 ---
    Он не может быть закомментирован у хостера. Это файл находится в корне джумлы и с ним можно делать что угодно.
    Например, при похожих глюках с URL раскомментировать и вписать туда
    Код (CODE):
    1. RewriteBase /

    А закомментировано, потому что обычно нормально работает и так, не считая некоторых "уникальных" хостингов.

    Если считаешь, что "всё должно остаться как есть", то спрашивай у хостера, почему у тебя по их же инструкции в url добавляется всякая хрень. А здесь делать нечего... :priest:
     
  19. Offline

    sergey113 Недавно здесь

    Регистрация:
    07.06.2013
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    За ссылку извеините.. ее надо проскрулить вниз. Или поиском по ключевой вразе сразу перекинет. Не заню как сделать ссылку на участок текста на странице.

    Про ruby косяк :) имел ввиду Perl :oops:

    Оффтопик (не в тему) - жми сюда!

    Спасбо за Вашу отзывчивость! Редко кто возьмется так поторчать с лузерами типа меня. Огромное спасибо.
     
  20. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Оффтопик (не в тему) - жми сюда!
     
  21. Offline

    sergey113 Недавно здесь

    Регистрация:
    07.06.2013
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    Оффтопик (не в тему) - жми сюда!
     

    Вложения:

Поделиться этой страницей

Загрузка...