Мод Rewrite: применяется ко всем файлам js и css, кроме - PullRequest
3 голосов
/ 19 февраля 2009

Мне нужно применить действия минификации ко всем файлам javascript и CSS, кроме тех, которые я указал.

У меня есть это условие и правило, которое применяется ко всем файлам (css и js):

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

Мне нужно добавить условия, чтобы сказать:

Применить ко всем, кроме: jquery.js, prototype.js и т. Д.

Ответы [ 3 ]

8 голосов
/ 19 февраля 2009

Попробуйте это

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

Ключом к этому является обращение к регулярному выражению с использованием "!" (восклицательный знак), чтобы сказать, что имя файла не jquery.js и не prototype.js, и его можно найти на жестком диске.

0 голосов
/ 01 июня 2009

Большое вам спасибо за это! Я искал этот ответ на мою проблему в течение почти месяца. Моя проблема заключалась в том, как переписать некоторые файлы в https, а остальные в http, но я смог изменить выше, чтобы он работал. Вот кусок моего кода. (У меня есть намного больше файлов в реальном .htaccess на сайте.)

#################################################################
# 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$
0 голосов
/ 19 февраля 2009

Вы можете использовать RewriteCond, чтобы указать, при каких условиях следует применять RewriteRule. Поэтому добавьте эти строки к вашему .htaccess:

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