[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: многодоменность, переадресация mod rewrite
nyos
Здравствуйте уважаемые

помогите пожалуйста
1) понять проблему
2) подключить доп файл с условиями

проблема вот такая ... к моим доменам которые указывают на одну папку ... туда же переадресовываются все файлы (не только html а такие как картинки, css, js и так далее)

---------------- после получения данных идёт переадресация ---------------

для страниц :
RewriteRule ^([^didrive_text_editor].*)\.(htm|html)$ /index.php?level=$1&option=$2&extend=$3 [L]

для картинок и других файлов:
RewriteRule ^(.*)\.(pdf|doc|xls|flv|csv|swf|wav|ogg|wma|rar|js|txt|zip|7z|mp3|ico|css|bmp|png|gif|JPG|jpg|JPEG|jpeg)$ /index.php?redir=yes&uri=$1.$2 [L]

после получения данных релирект по файлам читает файл, подставляет нужный хеадер и печатает содержимое файла

это как я понимаю даёт неплохую долю нагрузки на сервер вместо обычной переадресации на файл ...

т.е.

ссылка на файл такая вот http://site1.ru/ing.jpg
оригинал лежит вот тут /tratata/9.site/site1/ind.jpg

или

ссылка на файл такая вот http://site2.ru/ing.jpg
оригинал лежит вот тут /tratata/9.site/site2/ind.jpg

или

ссылка на файл такая вот http://site1.ru/papa/ing.jpg
оригинал лежит вот тут /tratata/9.site/site1/papa/ind.jpg


1) какую строку необходимо вставить если жёско прописать какой домен на какую папку указывает ... ( обычные ссылки должны обрабатываться в корне сайта, тобишь никакой полной переадресации на адрес нельзя делать)

2) какую строку наподобии вот этой ( RewriteRule ^([^didrive_].*)/(.*)-(.*)\.(png|gif|jpg)$ /index.php?level=$1&option=$2&extend=$3&type=img [L] ) с ограничениями нужно вставить чтобы не обрабатывались ссылки после перехода на адрес /tratata/9.site/site1/******

PHP
php_value error_reporting 7

RewriteEngine on

#службы#

    #файлы
        
RewriteRule   ^collection.mp3.best/(.*).(mp3|wav)$ /index.php?redir=yes&uri=$1.$2&outfile=yes [L]
        
RewriteRule   ^screen.full.4.wallpaper/(.*).(ico|bmp|png|gif|JPG|jpg|JPEG|jpeg)$ /index.php?redir=yes&uri=$1.$2&lookwallpaper=da [L]

        
RewriteRule    ^/loadw/(.*)/(.*)/(.*)$    /9.site/$1/$2/download/$3    [R]

        
RewriteRule   ^(S|s)itemap.xml$ /index.php?redir=yes&sitemap=yes&uri=Sitemap.xml [L]
        
RewriteRule   ^robots.txt$ /index.php?redir=yes&uri=robots.txt [L]

    
# картинки маленькие
            
RewriteRule   ^site-image/(.*)-(.*)$ /0.all/extra/foto_mini.php?q=$1&img=$[L]
            
RewriteRule   ^site.image/(.*).(.*).(.*).(jpeg|jpg|gif)$ /0.all/extra/foto_mini.php?q=$1&w=$2&imgcode=$[L]
            
RewriteRule   ^site.image/full(.*).(jpeg|jpg|gif)$ /0.all/extra/foto_mini.php?fullest=yes&imgcode=$[L]
            
RewriteRule   ^site.image/(.*)/(.*)/(.*).(jpeg|jpg|gif)$ /0.all/extra/foto_mini.php?q=$2&w=$1&imgcode=$[L]

    
# rss лента
        
RewriteRule   ^(.*)/(.*)-(.*).rss$ /index.php?level=$1&rss=$2&rss_plus=$[L]
        
RewriteRule   ^(.*)/(.*).rss$ /index.php?level=$1&rss=$2&rss_plus=index [L]
        
RewriteRule   ^(.*).rss$ /index.php?level=$1&rss=da&rss_plus=index [L]

    
# jpg с изменёнением размера
        
RewriteRule   ^didra-nyos/(.*)-(.*)/(.*).(JPG|jpg|JPEG|jpeg)$    /index.php?redir=yes&q=$1&w=$2&uri=$3.$4    [L]
        
# RewriteRule   ^didra-nyos/(.*)-(.*)/(.*)\.(JPG|jpg|JPEG|jpeg)$    /index.php?redir=yes&q=$1&w=$2&uri=$3.$4    [L]

    # редирект оригиналы
        
RewriteRule   ^(.*).(pdf|doc|xls|flv|csv|swf|wav|ogg|wma|rar|js|txt|zip|7z|mp3|ico|css|bmp|png|gif|JPG|jpg|JPEG|jpeg)$ /index.php?redir=yes&uri=$1.$[L]

    
#картинки маленькие

        # картинка с изменением качества
            
RewriteRule   ^site-image/(.*)-(.*)$ /0.all/extra/foto_mini.php?q=$1&img=$[L]

        
# просто переадресация с кодировкой base64
            
RewriteRule   ^didriv.site-image/(y|n)(.*)$ /0.all/extra/foto_mini.php?print=$1&img=$2&s=yes [L]

        
# переадресация с изменением размеров с оригинальной ссылкой
            
RewriteRule   ^nyos-img/(.*)-(.*)х(.*)-(.*).(jpg|jpeg)$ /0.site/module/$1/img.php?v=$4&h=$2&w=$[L]

    
#управление

        
RewriteRule   ^didrive/m(.*)z/(.*)-(.*)-(.*)-(.*).ht(m|ml)$        /index.php?didrive=da&mod=$1&var1=$2&var2=$3&var3=$4&var4=$[L]
        
RewriteRule   ^didrive/m(.*)z/(.*)-(.*)-(.*).ht(m|ml)$        /index.php?didrive=da&mod=$1&var1=$2&var2=$3&var3=$[L]
        
RewriteRule   ^didrive/m(.*)z/(.*)-(.*).ht(m|ml)$        /index.php?didrive=da&mod=$1&var1=$2&var2=$[L]        
        
RewriteRule   ^didrive/m(.*)z/(.*).ht(m|ml)$        /index.php?didrive=da&mod=$1&var1=$[L]
        
RewriteRule   ^didrive/design/(.*)_(.*).-(.*)$ /0.all/extra/foto_mini.php?q=$1&img=$3&w=$[L]
        
RewriteRule   ^didrive/(.*)-(.*).ht(m|ml)$    /index.php?didrive=da&var1=$1&var2=$2    [L]
        
RewriteRule   ^didrive/(.*).ht(m|ml)$    /index.php?didrive=da&divar1=$1&var2=index    [L]
        
RewriteRule   ^didrive/$ /index.php?didrive=da&var1=index    [L]
        
RewriteRule   ^didrive$ /index.php?didrive=da&var1=index    [L]

    
#информеры

        
RewriteRule   ^iform.r/(.*)-(.*)-(.*)-(.*).(htm|html|jpeg|jpg|bmp|png|gif)$ /index.informer.php?infile=$1&val1=$2&val2=$3&val3=$4&val4=$5&exte=$[L]
        
RewriteRule   ^iform.r/(.*)-(.*)-(.*)-(.*).(htm|html|jpeg|jpg|bmp|png|gif)$ /index.informer.php?infile=$1&val1=$2&val2=$3&val3=$4&val4=no&exte=$[L]
        
RewriteRule   ^iform.r/(.*)-(.*)-(.*).(htm|html|jpeg|jpg|bmp|png|gif)$ /index.informer.php?infile=$1&val1=$2&val2=$3&val3=no&val4=no&exte=$[L]
        
RewriteRule   ^iform.r/(.*)-(.*).(htm|html|jpeg|jpg|bmp|png|gif)$ /index.informer.php?infile=$1&val1=$2&val2=no&val3=no&val4=no&exte=$[L]
        
RewriteRule   ^iform.r/(.*).(htm|html|jpeg|jpg|bmp|png|gif)$ /index.informer.php?infile=$1&val1=no&val2=no&val3=no&val4=no&exte=$[L]

# 5 значений

    
RewriteRule   ^([^didrive_].*)/(.*)-(.*)-(.*)-(.*).(html|htm)$ /index.php?level=$1&option=$2&extend=$3&action=$4&dop=$[L]

# 4 значения

    
RewriteRule   ^([^didrive_].*)-(.*)-(.*)-(.*).(htm|html)$ /index.php?level=$1&option=$2&extend=$3&action=$[L]
    
RewriteRule   ^([^didrive_].*)/(.*)-(.*)-(.*).(html|htm)$ /index.php?level=$1&option=$2&extend=$3&action=$[L]
    
RewriteRule   ^([^didrive_].*)/(.*)-(.*)-(.*).(png|gif|jpg)$        /index.php?level=$1&option=$2&extend=$3&type=img [L]

# 3 значения

    
RewriteRule   ^([^didrive_].*)/(.*)/(.*).(html|htm)$ /index.php?level=$1&option=$2&extend=$[L]
    
RewriteRule   ^([^didrive_].*)/(.*)/(.*)/$ /index.php?level=$1&option=$2&extend=$[L]
    
RewriteRule   ^([^didrive_].*)/(.*)/(.*).(htm|html)$ /index.php?level=$1&option=$2&extend=$[L]
    
RewriteRule   ^([^didrive_].*)/(.*)-(.*).(htm|html)$        /index.php?level=$1&option=$2&extend=$[L]
    
RewriteRule   ^([^didrive_].*)/(.*)-(.*).(png|gif|jpg)$        /index.php?level=$1&option=$2&extend=$3&type=img [L]
    
RewriteRule   ^(.*)-(.*)-(.*).(htm|html)$ /index.php?level=$1&option=$2&extend=$[L]

# 2 значения

    
RewriteRule   ^([^didrive_text_editor].*)/(.*)/$ /index.php?level=$1&option=$[L]
    
RewriteRule   ^(.*)-(.*).(htm|html)$ /index.php?level=$1&option=$[L]
    
RewriteRule   ^([^didrive_text_editor].*)/(.*).(htm|html)$        /index.php?level=$1&option=$[L]

# 1 значения

    
RewriteRule   ^download.(htm|html)$        /index.php?level=download&option=index [L]
    
RewriteRule   ^([^didrive_text_editor].*)/$        /index.php?level=$1&option=index [L]
    
RewriteRule   ^([^didrive_text_editor].*).(htm|html)&article_id=(.*)$        /index.php?level=$1&option=index&article_id=$[L]
    
RewriteRule   ^([^didrive_text_editor].*).on.(htm|html)$        /index.php?level=$1&option=index [L]
    
RewriteRule   ^([^didrive_text_editor].*).(htm|html)$        /index.php?level=$1&option=index [L]
    
RewriteRule   ^([^drive].*).(htm|html)$        /index.php?level=$1&option=index [L]

    
RewriteRule   ^([^didrive_text_editor].*).(htm|html)?(.*)$        /index.php?level=$1&option=index [L]

# 0 значений

    
RewriteRule    ^$    /index.php?level=000.index    [L]




Спустя 14 минут, 15 секунд (15.10.2009 - 18:08) glock18 написал(а):
nyos
насчет чтения/отправки файла. не уверен, что здесь дело в нагрузке, потому что в любом случае файл открывается на чтение и отправляется. другое дело, что этим обычно занимается не php. и вот это не есть хорошо. непонятно зачем, скажем, картинки подавать именно таким образом через пхп? урл скрыть? а оно надо? я могу в любой момент сохранить себе картинку, если на то пойдет. стили и жс - то же самое.

вопросы касательно rewrite_rule'ов не понял. увидев правда их список, подумал, что было бы неплохо разбавить их Rewrite_cond'ами. но это мое мнение, не претендующее на незыблемость.

ЗЫ: а вообще правил очень много, а вопросы/объяснения везде ссылаются на них. разбираться в них всех особого желания нет, прости.

Спустя 1 день, 6 часов, 42 минуты, 58 секунд (17.10.2009 - 00:51) nyos написал(а):
Пистолет глок ты прощён )))

в опчем ситуация то следующая ... опишу логику обработки системки

1) идёт запрос на домен №1
2) обрабатывают его одни общие скрипты
3) данные (картинки и шаблоны и т.д.) беруться только из папки которая под доменом закреплена ...
PS) чтобы взять картинку из нужной папки и подключается PHP который выуживает информацию и говорит что файл вот такой то лежит вот там то (в папке №1) отттуда читает картинку и выводит оную


- сервер
-- куча доменов
- общая логика и скрипты
--- данные настройки и доп фалы (картинки например) для каждого домена свои



Rewrite_cond'ы ... покажите пример или дайте ссылку на то где описание есть пожалуйста

Спустя 50 минут, 32 секунды (17.10.2009 - 01:42) glock18 написал(а):
здесь можно глянуть:
http://httpd.apache.org/docs/1.3/mod/mod_r...tml#RewriteCond

не знаю правильно ли я понял, но можно ввести в урлы на домены префиксы, по которым можно было бы домен определить (например, rewritecond'ом). ну а потом в соответствии с каким-то правилами редиректнуть запрос на нужный домен. или что-то в этом духе.

Спустя 10 часов, 54 минуты, 17 секунд (17.10.2009 - 12:36) nyos написал(а):
blink.gif я понял что тупой как пробка

как я понимаю можно сделать следуюющее ...

1) смотрим какой домен (и есть ли жёская привязка папки к домену)
2) переадресовываем на реал файл но только если реал файл есть в той папке

3) если правило не сработало то идём и дальше обрабатываем ...




sad.gif помогите пожалуйста сделать вот так ... хотяб структурно раскажите как должно выглядеть ...

Спустя 8 часов, 45 минут, 37 секунд (17.10.2009 - 21:22) glock18 написал(а):
nyos
не надо такие упаднические настроения

Цитата
1) смотрим какой домен (и есть ли жёская привязка папки к домену)

как я уже говорил: я бы определял домен/папку по префиксу:
Код

RewriteCond %{REQUEST_URI}  ^res1_.*

RewriteRule ^res1_() "здесь ставишь регулярку для превращения в реальный хост" reshost.com/... [C] # выполняем только вместе со следующим правилом
RewriteCond %{REQUEST_URI} -f # проверка на существование файла (если сервер может это сделать, иначе смотри флаг R у RewriteRule - redirect)

RewriteRule ^.*$     http://reshost.com/path/to/res [RL]


ЗЫ: писал сейчас, опираясь только на ссылку выше. ничего не проверял, и почти уверен, что сразу не заработает, потому что сам редко баловался mod_rewrite'ом. Но может тебе поможет эта выкладка.

Спустя 17 часов, 34 минуты, 59 секунд (18.10.2009 - 14:57) nyos написал(а):
Спасибо большое smile.gif попробую сделать рабочий код.

если получится сделать выложу статью по поводу этого вопроса smile.gif и ссылку тутава выкину smile.gif

Спасибо огромучее

Спустя 3 часа, 6 минут, 30 секунд (18.10.2009 - 18:03) HardWoman написал(а):
Все то о чем вы пишите реализовано нашим администратором FatCat в движке этого форума. Но Михаил пока в отпуске.
Вот вернется спросите у него.

Спустя 1 час, 34 минуты, 25 секунд (18.10.2009 - 19:38) Guest написал(а):
крута

когда возвращается Михаил ? его аську реально получить в личку ?

Спустя 3 минуты, 48 секунд (18.10.2009 - 19:41) nyos написал(а):
про аську в личку эт я писал ... просто не видел что не вошёл в аккаунт

Спустя 1 день, 6 часов, 41 минута, 46 секунд (20.10.2009 - 02:23) nyos написал(а):
в опчем у мня получилось вот такое

PHP
RewriteCond %{SERVER_NAMEwww.site.ru
RewriteCond 
/home/nyos/pkl_0910/download%{REQUEST_URI} -
RewriteRule   
^(.*).(jpeg|jpg|bmp|png|gif|css|js)$    /9.site/nyos/pkl_0910/download/$1.$[L]

RewriteCond %{SERVER_NAMEwww.site2332.ru
RewriteCond 
/home/nyos/pkl_an1/download%{REQUEST_URI} -
RewriteRule   
^(.*).(jpeg|jpg|bmp|png|gif|css|js)$    /home/nyos/pkl_an1/download/$1.$[L]

#если файлы не найдены то идёт успешно обработка последующих правил


biggrin.gif работает господа!!! smile.gif

blink.gif спасибо огромное помощникам которые знают гораздо больше wink.gif

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.