Нетривиальная склейка без www с www на masterhost.ru

12
C
На сайте с 25.04.2012
Offline
21
2169

Времени доброго суток, уважаемые!

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

Всего-то нужно склеить сайт без www с www.

Вот только обычная запись в .htacess не работает.

А конкретно:

RewriteEngine on

RewriteCond %{SERVER_ADDR} !127\.0\.0\.1

RewriteCond %{SERVER_ADDR} !192\.168\.

RewriteCond %{SERVER_ADDR} !10\.

RewriteCond %{HTTP_HOST} !^www.yoursite.com

RewriteRule ^(.*)$ http://www.yoursite.com/$1 [R=301,L] - не работает. Сайт не склеивается.

Как я понял, это проблема хостинга, а именно - masterhost (он неверно отдают IP адрес сервера)

Более того, услышал мнение, что для мастер хоста может сработать следующий прием:

вместо трех строк с IP адресами надо использовать:

RewriteCond %{HTTP_HOST} !^{LOCAL_HOST}

Где {LOCAL_HOST} надо заменить на имя локального хоста.

Т.е. проще говоря, использовать код:

RewriteEngine on

RewriteCond %{HTTP_HOST} !^{LOCAL_HOST}

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

Но и этот вариант не поспособствовал склейке.

Может быть кто-то сталкивался уже с подобной проблемой? Посоветуйте решение

AM
На сайте с 09.01.2007
Offline
467
#1

у мастерхоста поддержка не отвечает?

им то виднее что у них и как

я так обычно вот так делаю:

RewriteCond %{HTTP_HOST} .

RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]

RewriteRule (.*) http://www.example.com/$1 [R=301,L]

это если домен с www основной

[umka]
На сайте с 25.05.2008
Offline
456
#2

А вообще .htaccess работает? А то может там страницу-то и не апач вовсе отдаёт.

Лог в помощь!
IL
На сайте с 20.04.2007
Offline
435
#3

Пользуюсь "тривиальным"

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

p.s. а вообще отрабатывает "RewriteEngine ON" ?

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

Благодарствую.

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

Испробую, да и просто капну поглубже сегодня что да как.

C
На сайте с 25.04.2012
Offline
21
#5

Так, использовал вариант

RewriteCond %{HTTP_HOST} !^www\.

RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

Он работает, но нужно не совсем для меня подходит конкретно в этом виде.

Дело в том, что приходится еще с сайтами работать локально,

загружая их через урл, скажем

сайт зовется www.mysite.ru

а локально грузится как mysite/

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

что нужно добавить в запись дабы это обеспечилось?

сейчас при попытки загрузить сайт локально (ввожу mysite/page1.html) выдается кривой урл (www/mysite/page1.html).

Ни рыба ни мясо.

Т.е. как прописать условие, что бы при локальной загрузке сайта www не подставлялось?

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

Добавить перед (или после) RewriteCond %{HTTP_HOST} !^www\. директиву RewriteCond c исключением, например по айпи адресу

RewriteCond %{REMOTE_ADDR} !^127\.0\.0

или сделать проверку чего нибудь другого, что может идентифицировать в вас локального пользователя

C
На сайте с 25.04.2012
Offline
21
#7
siv1987:

или сделать проверку чего нибудь другого, что может идентифицировать в вас локального пользователя

А что еще можно проверить? c IP у мастерхоста как раз проблема (т.е. не работает это условие)

---------- Post added 22-08-2012 at 10:12 ----------

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

[Удален]
#8
crimaniac:
мастерхоста как раз проблема

ага, - проблема

неужели техподдержка за два дня ничего внятного непромямлила?

раз самому влом поэкспериментировать... ))

IL
На сайте с 20.04.2007
Offline
435
#9

Да написали ведь.. Всё что угодно..

Можно свой домен прописать

RewriteCond %{HTTP_HOST} !=mysite

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

Или указать редирект только для конкретного "реального" домена


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

Гуглить, например так: https://www.google.com/search?q=rewritecond

Читать ман: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

C
На сайте с 25.04.2012
Offline
21
#10
Pavel_:

раз самому влом поэкспериментировать... ))

ага, влом, я за 2 дня так наэксперементировался, что поседею, наверное. после этого.

Там такой дикий лес в редиректах. Одно правишь, часть страниц перестает открываться) Клиент засечет, меня казнят. Не настрою, казнят =)

Ок, благодарю, поизучаю сегодня предложенные варианты.

12

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