2015-07-03 2 views
1

У меня есть несколько поддоменов, использующих общий виртуальный сервер и точку входа /var/www/index.php, и этот файл использует $_SERVER['HTTP_HOST'], чтобы определить подходящий «сайт», который используется для управления полученным HTML.Индивидуальные ресурсы для поддоменов подстановочных знаков

site1.example.com 
site2.example.com 
site3.example.com 
... 
siteN.example.com 

<VirtualHost *:443> 
    ServerName example.com 
    ServerAlias *.example.com 
    <Directory "/var/www"> 
    </Directory> 
</VirtualHost> 

Теперь я хочу, чтобы для каждого из этих сайтов субдоменов были доступны отдельные ресурсы для общего доступа к изображениям. Чтобы сделать это, я в настоящее время только что добавили отдельные каталоги для каждого сайта, которые доступны для всех сайтов

/var/www/public/site1/image1.png 
/var/www/public/site1/image2.png 
/var/www/public/site1/image3.png 

/var/www/public/site2/image4.png 
/var/www/public/site2/image5.png 

, а затем использовать PHP, чтобы написать соответствующий путь, основанный на $_SERVER['HTTP_HOST'].

<img src="/public/site1/image1.png" alt="bla" > 

Учитывая этот сценарий, можно использовать Apache (или, возможно, PHP или Linux символические ссылки) не требуют субдомен в них?

<img src="/public/image1.png" alt="bla" > 

ответ

1

Это должно быть достижимо с использованием .htacces. Необходимо реализовать следующее:

if($domain is 'site1.host.com') 
{ 
    rewrite '/public/image1.png' to '/public/site1/image1.png' 
} 

Это не проверяется, и может потребоваться добавление других изображений расширений:

RewriteCond %{HTTP_HOST} ^(.+)\.host\.com [NC] 
RewriteRule ^/public/(.*\.png)$ /public/$1/$2 [NC,L] 

EDIT. Ниже показано, что работает.

RewriteCond %{HTTP_HOST} ^(.+)\.host\.com [NC] 
RewriteRule ^public/([^//]+)$ public/%1/$1 [NC,L] 
+0

Спасибо. Может ли это быть сделано с помощью подстановочных знаков вместо hardcoding 'site1'? – user1032531

+0

@ user1032531 Я не уверен, что $ 1 и $ 2 будут работать. Но так мы должны двигаться. Plz, попробуйте обновить htaccess. – user4035

+0

Протестировано, но не работает. log показывает strip per-dir, затем применяет patter, но затем проходит через и приводит к отсутствию файла. – user1032531

Смежные вопросы