Общие > Веб Сервера

.htaccess - ПОМОГИТЕ ПОЖАЛУСА особый редирект

(1/2) > >>

hr1:
.htaccess - ПОМОГИТЕ ПОЖАЛУСА особый редирект

имеется сайт например
site111.ru
и еще 4 доменных имени привязанных fалиасом к нему:
site-111.ru
s111.ru
zite111.ru
site111.com

как прописать в .htaccess чтобы

1. все ссылки  с второстепенными доменными именами 2 уровня переписывались на имя основного сайта
например: ( символ -> означает преобразование ссылки )
www.site-111.ru  -> www.site111.ru
www.site111.com  -> www.site111.ru
zite111.ru  -> site111.ru или www.site111.ru
www.s111.ru/user/aa -> www.site111.ru/user/aa

site111.ru -> не преобразовывать
www.site111.ru  -> не преобразовывать

2. сохраняя 1 условие перенаправлять все ссылки с доменом третего уровня на подкаталог с тем же именем
например:
123.site111.ru -> site111.ru/123
anna.site111.ru -> site111.ru/anna
v777g1.site111.ru -> site111.ru/v777g1

возможно v777g1.site111.ru/user/ss -> site111.ru/v777g1


выполняя условия обеих преобразований должно получится

zite111.ru -> site111.ru
www.zite111.ru -> www.site111.ru
www.zite111.ru/user/ss -> www.site111.ru/user/ss

222.site111.ru  ->  site111.ru/222
222.zite111.ru  ->  222.site111.ru  ->  site111.ru/222
anton.zite111.ru/user/ss  ->  anton.site111.ru/user/ss  ->  site111.ru/user/ss

пожалуств помогите прописать "условия" в файл .htaccess

hr1:
неужели никто так и не знает как это сделать?

ravshaniy:
предупреждаю я не особо спец в настройке доменов и редиректах. но по-моему эта ситуация не решается одним .htaccess, то есть у вас как видно 5 сайтов, то есть это уже 5 файлов .htaccess.

вобще конечно несколько неправильно решать такую переадресацию средствами .htaccess, как то это затратно, если есть возможность сделать это настройкой адресации при настройке доменов. когда несколько доменных имен бы адресовали на один сайт было бы лучше наверное. возможно что при настройке апач можно ссылаться на одну директорию создании сайт *зоны*- если я не ошибся

но тем не менее вы хотите 5 сайтов и пять файлов .htaccess

ну и соответственно в каждом из файлов вы просто добавляете свой редирект
1-й способ : http://httpd.apache.org/docs/2.2/rewrite/rewrite_guide.html#redirecthome
2-й способ : http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirect

ну еще только выбирайте верную версию апач, и удачи вам

hr1:
на данный момент использую в .htaccess


RewriteEngine on

RewriteCond %{HTTP_HOST} ^zite111.ru
RewriteRule ^(.*)$ http://www.site111.ru/$1 [R=301]

RewriteCond %{HTTP_HOST} ^site-111.ru
RewriteRule ^(.*)$ http://www.site111.ru/$1 [R=301]

RewriteCond %{HTTP_HOST} ^s111.ru
RewriteRule ^(.*)$ http://www.site111.ru/$1 [R=301]

RewriteCond %{HTTP_HOST} ^site111.com
RewriteRule ^(.*)$ http://www.site111.ru/$1 [R=301]

RewriteCond %{HTTP_HOST} ^123.site111.ru
RewriteRule ^(.*)$ http://site111.ru/123 [R=301]

со своей задачей пока справляется.
но мне нужно прописать правильные "условия"
нужна грамотная Perl строка с проверкой условий


постараюсь описать алгоритм
я символически обозначил (на Perl языке это выглядит иначе):
%1 - строка домена 3 уровня
%2 - подкаталоги (все что следует после site111.ru/...)

1. Проверка HTTP_HOST
2. Если адрес %1.site111.ru/%2 перейти на пункт 4
3. Заменить ссылку на %1.site111.ru/%2
4. Если %1=""(пустой) или %1="www" перейти пункт 6
5. Заменить ссылку на site111.ru/%1
6. конец :)

В перл можно сделать выражение одной строкой (если не ошибаюсь)

ЗАДАЧКА ДЛЯ ПРОФЕССИОНАЛОВ!

hr1:
http://perldoc.perl.org/perlre.html

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

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии