2009-02-19 13 views
3

Je dois appliquer une action de minify à tous les fichiers javascript et CSS, sauf ceux que j'indique.Mod Rewrite: s'applique à tous les fichiers js et css sauf

Je cette condition et règle applicable à tous les fichiers (et css js):

RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^(.*\.)(js|css)$ minify.php?q=$1$2 [L,NC] 

je dois ajouter les conditions à dire:

Appliquer à tous, sauf: jquery.js , prototype.js, etc ..

Répondre

8

Essayez cette

RewriteCond %{REQUEST_FILENAME} !^.*jquery.js$ 
RewriteCond %{REQUEST_FILENAME} !^.*prototype.js$ 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^(.*\.)(js|css)$ minify.php?q=$1$2 [L,NC] 

la clé est l'inversion du Rege x en utilisant le "!" (point d'exclamation) pour dire que le nom de fichier n'est pas jquery.js et pas prototype.js et il peut être trouvé sur le disque dur.

0

Vous pouvez utiliser RewriteCond pour spécifier dans quelles conditions le RewriteRule doit être appliqué. Donc préfixer ces lignes à votre .htaccess:

RewriteCond %{REQUEST_FILENAME} !jquery.js 
RewriteCond %{REQUEST_FILENAME} !prototype.js 
0

Merci beaucoup pour cela! J'ai cherché cette réponse à mon problème pendant presque un mois. Mon problème était de savoir comment réécrire certains fichiers en https et le reste en http, mais j'ai été en mesure de modifier ci-dessus pour le faire fonctionner. Voici un morceau de mon code. (J'ai beaucoup plus de fichiers dans le vrai .htaccess sur le site.)

################################################################# 
# To only change certain files from http to https, the rest from 
# https to http. Absolute links are set up throughout the site, 
# but if a visitor for some reason edits the URL in the address 
# bar, the URL will change back to the proper format. 

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^alvingolf\.com$ [NC] 
RewriteCond %{HTTPS} on 
RewriteCond %{SERVER_PORT} ^443$ 
RewriteCond %{REQUEST_FILENAME} !^.*contact-us.html$ 
RewriteCond %{REQUEST_FILENAME} !^.*register-for-tournaments.html$ 
RewriteCond %{REQUEST_FILENAME} !^.*form.htm$