Назад | Перейти на главную страницу

Apache Headache: конфигурация виртуальных хостов

Я пытаюсь добиться следующего результата:

У меня есть несколько доменов, указывающих на один и тот же корневой каталог документов, которые содержат файлы, которые используются во всех доменах (index.php, файлы css и т. Д.):

C: / cms /

Тогда у меня есть несколько доменов:

Оба должны указывать на D: /files/domain1.com/*

Оба должны указывать на D: /files/domain2.com/*

тем не мение

Все должны указывать на C: /cms/adminstyle.css (если файл не найден в каталоге "для домена", он должен вернуться в "общий" каталог)

Возможно ли это с Apache? Я возился с виртуальными хостами / каталогами и псевдонимами, но пока безуспешно.

<VirtualHost *:80>
    DocumentRoot c:/cms/
    ServerName shared.domain1.com
    ServerAlias shared.domain2.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot c:/files/domain1.com/
    #Yes, taking liberty with the name of your domain(s) here.  Correct it if my assumptions are wrong.
    ServerName domain1.com
    ServerAlias *.domain1.com

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (.*) http://shared.domain1.com/$1 [L,QSA]
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot c:/files/domain2.com/
    #Yes, taking liberty with the name of your domain(s) here.  Correct it if my assumptions are wrong.
    ServerName domain2.com
    ServerAlias *.domain2.com

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (.*) http://shared.domain2.com/$1 [L,QSA]
</VirtualHost>

Это должно сработать.

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/adminstyle\.css$
RewriteCond %{DOCUMENT_ROOT}/adminstyle.css !-f
RewriteRule ^(.+) C:/cms/adminstyle.css [L]
RewriteRule ^(.+) - [PT]

Видеть: http://httpd.apache.org/docs/2.2/rewrite/rewrite_guide.html#multipledirs

Вы можете сделать что-то вроде:

NameVirtualHost 1.2.3.4:80
Alias /shared D:/files/shared

<VirtualHost 1.2.3.4:80>
ServerName domain1.com
ServerAlias www.domain1.com *.domain1.com
DocumentRoot D:/files/domain1.com
</VirtualHost>

<VirtualHost 1.2.3.4:80>
ServerName domain2.com
ServerAlias www.domain2.com *.domain2.com
DocumentRoot D:/files/domain2.com
</VirtualHost>

Поместите ваши общие файлы в D: / files / shared и назовите их img src = "/ shared / something"