Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > htaccess помощь в создании правила


Автор: Frozen_Coyote 23.8.2015, 10:49
привет!

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

смысл

мне необходимы два правила.

1. Работает правильно и корректно. Его смысл - если человек вводит в адресной строке название сайта С www - редиректить его на наш сайт но БЕЗ www

2. Тут затык случился, не работает. Смысл - если человек заходит на стартовую страницу www.mydomain.ru или mydomain.ru - чтобы его всегда редиректило на http://mydomain.ru/ru/ Интересно решение с регуляркой какой то, чтобы имя домена не было явно прописано

Код


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

#2. не работает ((
RewriteCond %{HTTP_HOST} ^http://(.*) [NC]
RewriteRule ^(.*)$ http://%1/ru/ [R=301,L]





Код


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


Автор: _zorn_ 24.8.2015, 04:33
А если не конопатить мозги и положить индекс.хтмл с содержимым 
Цитата
<meta http-equiv="refresh" content="0; url=ru">

???

Цитата
У тебя есть проблема. Ты восклицаешь "я решу эту проблему с помощью регулярных выражений !"
Теперь у тебя две проблемы.

Автор: ИшТы 10.1.2016, 13:20
Переменная %{HTTP_HOST} как раз и является именем хоста, а http(s) - это schema, все что идет после имени хоста - REQUEST_URI. То есть Ваш адрес выглядит следующим образом:
%{SCHEME}://%{HTTP_HOST}%{REQUEST_URI}

В случае с http://www.mydomain.ru/имя_страницы
http - %{SCHEME}
www.mydomain.ru - %{HTTP_HOST}
/имя_страницы - %{REQUEST_URI}

Вообще использование переменной SCHEME может не всегда отстреливать.

Следующее регулярное выражение не должно возвращать ничего, поскольку http:// не входит в HTTP_HOST
Код

RewriteCond %{HTTP_HOST} ^http://(.*) [NC]


Дальше смотрите сами.

Автор: EvgenAll 17.3.2016, 17:26
Думаю правильно будет так:
1. Два обязательных параметра в файле htaccess
Options +FollowSymLinks
RewriteEngine On

2. Само правило должно выглядеть так:
RewriteCond %{HTTP_HOST} ^www.mydomain\.ru$ [NC]
RewriteRule ^(.*)$ http://mydomain.ru/$1 [R=301,L]

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)