Apache Headache: конфигурация виртуальных хостов
Я пытаюсь добиться следующего результата:
У меня есть несколько доменов, указывающих на один и тот же корень документа, которые содержат файлы, которые используются на всех доменах (index.php, файлы css и т. Д.):
C: / CMS /
Тогда у меня есть несколько доменов:
- www.domain1.com/*
- fr.domain1.com/*
Должны ли оба указывать на D: /files/domain1.com/*
- www.domain2.com/*
- de.domain2.com/*
Должны ли оба указывать на D:/files/domain2.com/*
тем не мение
- www.domain1.com/adminstyle.css
- fr.domain1.com/adminstyle.css
- www.domain2.com/adminstyle.css
- de.domain2.com/adminstyle.css
Должны ли все указывать на C:/cms/adminstyle.css (если файл не найден в каталоге "на домен", он должен вернуться к "общему" каталогу)
Это возможно с Apache? Я возился с виртуальными хостами / каталогами и псевдонимами, но пока безуспешно.
3 ответа
Это должно сделать это.
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
<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>
Вы могли бы сделать что-то вроде:
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/what"