2009-07-15 9 views
0

Je cours Apache2 avec plusieurs serveurs virtuels dans le dossier sites activés, chacun ressemble un peu à ceci:Rewrite commun Cadre VHosts multiples

<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> 

Le code Rewrite est commun à tous les serveurs virtuels (fournissant un favicon par défaut .ico/robots.txt) mais mettre ce code dans httpd.conf ne semble pas avoir d'effet - les journaux de réécriture ne montrent rien.

Comment puis-je rendre ce code commun à tous les hôtes virtuels sans dupliquer le code? Sinon, existe-t-il un meilleur moyen d'atteindre les favicons par défaut?

Merci

Répondre

1

Vous pouvez essayer un AliasMatch:

AliasMatch ^/(robots\.txt|favicon.ico)$ /home/sites/site1/www/mainsite_alias$0 
0

J'utilise ce

<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> 

et je garde des scripts de réécriture dans .htaccess à la racine [C:/apache/htdocs] J'espère que ça aide d'une façon ou d'une autre, si ce n'est pas génial. lol