多个VHost的通用重写设置

时间:2009-07-15 21:22:10

标签: apache mod-rewrite favicon vhosts

我在启用网站的文件夹中运行带有多个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?

由于

2 个答案:

答案 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] 我希望它能以某种方式帮助,如果不是令人讨厌的话。洛尔