2009-07-15 61 views
0

我在啓用了站點文件夾的多個虛擬主機上運行的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> 

的重寫代碼是共同的所有虛擬主機(提供默認圖標.ico/robots.txt),但將這些代碼放到httpd.conf中似乎沒有任何影響 - 重寫日誌沒有任何顯示。

如何在不重複代碼的情況下讓所有虛擬主機共用此代碼?

另外 - 有沒有更好的方式來實現默認的圖標?

感謝

回答

1

你可以嘗試AliasMatch

AliasMatch ^/(robots\.txt|favicon.ico)$ /home/sites/site1/www/mainsite_alias$0 
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:/阿帕奇/ htdocs] 我希望它有助於某種方式,如果不是很討厭。大聲笑