Индивидуальные ресурсы для подстановочных субдоменов

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 ответ

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] 

РЕДАКТИРОВАТЬ. Ниже показано, что работает.

RewriteCond %{HTTP_HOST} ^(.+)\.host\.com [NC] 
RewriteRule ^public/([^//]+)$ public/%1/$1 [NC,L] 
  • 0
    Благодарю. Может ли это быть достигнуто с использованием подстановочных знаков вместо жесткого site1 ?
  • 0
    @ user1032531 Я не уверен, что $ 1 и $ 2 будут работать. Но так мы должны двигаться. Плз, попробуйте обновленный htaccess.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню