Программирование > Perl

строка с условиями на perl

<< < (3/3)

Yaroslav:
значит так, начнем, возможно кто то дополнит :-)
1. функция RewriteCond не позволяет использовать регулярные выражения, кроме как крышки. которая в свою очередь является (по правилам Перл) начала строчки, поэтому:
RewriteCond %{HTTP_HOST} site-111.ru [OR]
RewriteCond %{HTTP_HOST} s111.ru [OR]
RewriteCond %{HTTP_HOST} zite111.ru [OR]
RewriteCond %{HTTP_HOST} site111.com
RewriteRule ^(.*)$ http://www.site111.ru/$1 [R=301]

Таким образом с адреса http://www.anton.site111.ru, самого Антона вытащить не удается...
Зато все остальное удачно подставляется в конце :))

Yaroslav:

--- Цитировать ---Yaroslav:
функция RewriteCond не позволяет использовать регулярные выражения
--- Конец цитаты ---

забираю свои слова обратно! вроде что то нарыл

Yaroslav:
Тут была полная бредятена, вместо нее


--- Код: ---RewriteCond %{HTTP_HOST} ^www\\.(.*)\\..*111.ru\\/(.*) [OR]
RewriteCond %{HTTP_HOST} ^[url]www..*111.ru\\/[/url](.*) [OR]
RewriteCond %{HTTP_HOST} ^www\\.(.*)\\..*111.com\\/(.*) [OR]
RewriteCond %{HTTP_HOST} ^[url]www..*111.com\\/[/url](.*)
RewriteRule ^(.*)$ [url]http://www.site111.ru/[/url]$1/$2 [R=301]

--- Конец кода ---

интересно заработает ли :-))

hr1:
После долгих экспериментов и изучения документации
Я ЭТО СДЕЛАЛ!!!

Итак готовый "скрипт" для .htaccess в студию!!!
 
--- Код: ---
[SIZE=3][COLOR=green]

RewriteEngine on

RewriteCond %{HTTP_HOST} !^site111.ru
RewriteRule  ^(.*)$ - [C]

RewriteCond %{HTTP_HOST} ^(www\\.site111\\.ru)|^(www\\.zite111\\.ru)|^(zite111\\.ru)|^(www\\.site-111\\.ru)|^(site-111\\.ru)|^(www\\.s111\\.ru)|^(s111\\.ru)|^(www\\.site111\\.com)|^(site111\\.com)
RewriteRule ^(.*)$ http://site111.ru/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www\\.(.+)\\.site111\\.ru [OR]
RewriteCond %{HTTP_HOST} ^(.+)\\.site111\\.ru [OR]
RewriteCond %{HTTP_HOST} ^www\\.(.+)\\.zite111\\.ru [OR]
RewriteCond %{HTTP_HOST} ^(.+)\\.zite111\\.ru [OR]
RewriteCond %{HTTP_HOST} ^www\\.(.+)\\.site-111\\.ru [OR]
RewriteCond %{HTTP_HOST} ^(.+)\\.site-111\\.ru [OR]
RewriteCond %{HTTP_HOST} ^www\\.(.+)\\.s111\\.ru [OR]
RewriteCond %{HTTP_HOST} ^(.+)\\.s111\\.ru [OR]
RewriteCond %{HTTP_HOST} ^www\\.(.+)\\.s111\\.com [OR]
RewriteCond %{HTTP_HOST} ^(.+)\\.site111\\.com
RewriteRule ^(.*)$ http://site111.ru/%1/$1 [R=301,L]

[/COLOR][/SIZE]
--- Конец кода ---


Что происходит?
в первом условии
если url= http://site111.ru/... сразу выходим

во втором условии
если нет домена третьего уровня или там cтрока www
переписываем все на http://site111.ru/...

пример:
s111.ru ->site111.ru
www.zite111.ru/33 -> site111.ru/33
www.site111.ru -> site111.ru


в третьем условии
берем домен  третьего уровня (игнорируя www перед ним)
и помещаем его в подкаталог сдвигая все остальные подкаталоги

пример:
go.site111.ru -> site111.ru/go
www.yes.zite111.ru -> site111.ru/yes
www.rock.s111.ru/user/de -> site111.ru/rock/user/de

Надеюсь кому то это еще пригодится :)

Навигация

[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 
Перейти к полной версии