我在启用网站的文件夹中运行带有多个vhost的Apache2,每个看起来都像这样:
<VirtualHost *:80>
ServerName site1.com
ServerAlias www.site1.com
DocumentRoot /home/sites/site1/www/
<Directory /home/sites/site/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
<Directory /home/sites/mainsite/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
# Provide default favicon.ico and robots.txt using rewrite
RewriteOptions Inherit
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteRule ^/(robots\.txt|favicon\.ico)$ /mainsite_alias$0 [PT,NC,L]
</VirtualHost>
Rewrite代码对所有vhost都是通用的(提供默认的favicon.ico / robots.txt),但是将此代码放入httpd.conf似乎没有任何效果 - 重写日志没有显示任何内容。
如何在不重复代码的情况下使所有虚拟主机共用此代码?
或者 - 是否有更好的方法来实现默认的favicons?
由于
答案 0 :(得分:1)
您可以尝试AliasMatch
:
AliasMatch ^/(robots\.txt|favicon.ico)$ /home/sites/site1/www/mainsite_alias$0
答案 1 :(得分:0)
我正在使用此
<VirtualHost *:80>
ServerAdmin email_at_isp
DocumentRoot "C:/apache/htdocs"
</VirtualHost>
<VirtualHost *:80>
ServerAdmin admin_at_server_one.com
DocumentRoot "C:/apache/htdocs/server_one.com"
ServerName server_one.com
ErrorLog "logs/server_one.com-error.log"
CustomLog "logs/server_one.com-access.log" common
</VirtualHost>
我继续在.htaccess中重写脚本[C:/ apache / htdocs] 我希望它能以某种方式帮助,如果不是令人讨厌的话。洛尔