301 редирект, .htaccsess, c сайта "без www" на сайт с "www"

X
На сайте с 12.10.2010
Offline
29
1163

Всем привет! Есть не большая проблемка с 301 редиректом...

суть проблемы такова:

На сайте "nekiysite.ord", путём правки в файле .htaccess...


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

...редирект сайта удаётся сделать;

А вот в случае с сайтом "nekiysite.ord/en/", аналогичные действия...


RewriteEngine On
RewriteCond %{http_host} ^nekiysite.ord/en [NC]
RewriteRule ^(.*)$ http://www.nekiysite.ord/en/$1 [R=301,L]

...не приводят к желаемому результату...

Подскажите пожалуйста, что я делаю не так?

Ragnarok
На сайте с 25.06.2010
Offline
239
#1

А разве


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

не работает также для nekiysite.ord/en/?

//TODO: перестать откладывать на потом
X
На сайте с 12.10.2010
Offline
29
#2
Ragnarok:
А разве

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

не работает также для nekiysite.ord/en/?

нет, при наборе в адресе nekiysite.ord/en/ - выводит http://nekiysite.ord/en/, а нужно что бы выводил http://www.nekiysite.ord/en/. Не пойму в чем причина...у Вас нет каких нибудь идей по этому поводу?

AlikZP
На сайте с 22.11.2009
Offline
107
#3

У меня отлично работает

RewriteEngine On

RewriteBase /

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

С экранированием точек.

Website CMS: быстрая, удобная, недорогая! Вечная лицензия за 45$ (/ru/forum/524503) Яся - быстрый поиск фото для товаров. OpenCart/ocStore. Дополнение. (/ru/forum/665287) Грамотная верстка ваших макетов (/ru/forum/comment/8853216)
X
На сайте с 12.10.2010
Offline
29
#4
AlikZP:
У меня отлично работает

RewriteEngine On
RewriteBase /

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


С экранированием точек.

А вы попробуйте в ваш сайт вложить еще сайт ("www.wscms.ru/en/(сюда)"), а затем настроить так, чтобы при вводе "wscms.ru/en/" выводилось "www.wscms.ru/en/"

Экранировал...не помогает 😒

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

xPaco, HTTP_HOST - какой еще /en?

RewriteCond %{HTTP_HOST} ^site.ru$

X
На сайте с 12.10.2010
Offline
29
#6

...у меня в каталоге с основным сайтом("www.nekiysite.ord"), лежит еще один сайт, в каталоге "www.nekiysite.ord/en/", поэтому я и пытаюсь:

RewriteEngine On
RewriteCond %{http_host} ^nekiysite.ord/en [NC]
RewriteRule ^(.*)$ http://www.nekiysite.ord/en/$1 [R=301,L]

Но ничего не получается... после выше указанной манипуляции с фалом .htaccess, находящегося в папке "www.nekiysite.ord/en/", всё равно при вводе в адресную строку: "nekiysite.ord/en/", не происходит редиректа на http://www.nekiysite.ord/en/ :( никак не могу выявить в чем неточность

siv1987
На сайте с 02.04.2009
Offline
427
#7
xPaco:
...у меня в каталоге с основным сайтом("www.nekiysite.ord"), лежит еще один сайт, в каталоге "www.nekiysite.ord/en/", поэтому я и пытаюсь:
RewriteEngine On

RewriteCond %{http_host} ^nekiysite.ord/en [NC]
RewriteRule ^(.*)$ http://www.nekiysite.ord/en/$1 [R=301,L]

Но ничего не получается... после выше указанной манипуляции с фалом .htaccess, находящегося в папке "www.nekiysite.ord/en/", всё равно при вводе в адресную строку: "nekiysite.ord/en/", не происходит редиректа на http://www.nekiysite.ord/en/ :( никак не могу выявить в чем неточность

Потому что несешь чушь.

Переменная HTTP_HOST содержит только имя домена на которым запускается скрипт. От URI не зависит.

Ну пиши тогда так

RewriteCond %{HTTP_HOST} !^www\.

RewriteRule (.*) http://www.site.ru/$1 [R=301]

X
На сайте с 12.10.2010
Offline
29
#8
siv1987:
Потому что несешь чушь.
Переменная HTTP_HOST содержит только имя домена на которым запускается скрипт. От URI не зависит.

Ну пиши тогда так
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) http://www.site.ru/$1 [R=301]

:( вставляю этот текст в файл .htaccess из папки www/en/, и получаю редирект на www.nekiysite.ord...а нужно на www.nekiysite.ord/ru/

M
На сайте с 27.10.2006
Offline
111
#9

Какие директивы еще есть в .htaccess?

Бесплатное хранилище данных (http://bit.ly/gJYy9Z) (5GB) с синхронизацией. По ссылке — бонус 500MB.
X
На сайте с 12.10.2010
Offline
29
#10

Всем спасибо, нашел где лечится!

______________________________________________________________________________________________________

Может кому нибудь понадобится;

Для того что бы сделать 301 редирект на сайт в подпапке (т.е. у вас основной сайт www.site.ru, а вам нужно настроить редирект на под-сайт www.site.ru/en/) выполните следующие действия:

На основном сайте, в файле .htaccess, находящегося в root'е - сразу после верхнего "RewriteEngine On"

добавляйте :

RewriteCond %{http_host} ^site.ru [NC]

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

RewriteCond %{http_host} ^site.ru/en [NC]

RewriteRule ^(.*)$ http://www.site.ru/en/$1 [R=301,L]

А в файле .htaccess, находящегося root'e подпапки /en/ т.е. в www.site.ru/en/, добавляем следуещее:

RewriteCond %{HTTP_HOST} !^www\.

RewriteRule (.*) http://www.site.ru/en/$1 [R=301]

______________________________________________________________________________________________________

p.s. не забываем менять site.ru на свой домен.

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