2010-12-05 3 views
1

Quelqu'un sait ce qu'il faut mettre en vhost.conf pour apache de reproduire ce (à partir .htaccess):.htaccess à VHost

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|scripts|css|uploads|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

Fondamentalement, je veux toutes les demandes, sauf celles/images, scripts/ou/css passer par index.php.

Il fonctionne quand j'utilise le fichier .htaccess mais je voudrais savoir comment faire via vhost.conf ainsi. Quelqu'un sait s'il est préférable d'utiliser un sur l'autre et (vhost.conf vs htaccess) en termes de performance, de stabilité, etc.?

+0

Vous devriez être en mesure de mettre ce 1: 1 dans la directive VirtualHost –

Répondre

3

Il devrait fonctionner quand préfixer le motif avec /, soit:

RewriteCond $1 !^(index\.php|images|scripts|css|uploads|robots\.txt) 
RewriteRule ^/(.*)$ /index.php/$1 [L] 

Ou:

RewriteCond $1 !^/(index\.php|images|scripts|css|uploads|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

L'inconvénient des fichiers .htaccess est tout simplement qu'ils doivent pratiquement être interprétées avec toutes les demandes tandis que la configuration de l'hôte virtuel est simplement interprété une fois lorsque le serveur est démarré.