2016-12-13 5 views
2

私は2つの目的で書き換えルールを使用しています。まず、URLを.cssファイルと.jsファイルに書き換えて、最小化スクリプトで処理できるようにしました。これは、正常に動作されています:HTACCESS Rewrite:別の書き換えルールを無視する

RewriteEngine on 
RewriteRule ^assets/css/min/([a-zA-Z0-9\._-]+)/([a-zA-Z0-9\._-]+)/([a-zA-Z0-9\._-]+)\.css$ assets/css/min.php?style=$1&theme=$2&ver=$3 [L,QSA] 
RewriteRule ^assets/js/min/([a-zA-Z0-9\._-]+)/([a-zA-Z0-9\._-]+)\.js$ assets/js/min.php?scripts=$1&ver=$2 [L,QSA] 

しかし、今私は(MVCのルーティングのための)私のindex.phpファイルに存在しないページのすべてのトラフィックをリダイレクトするルールを追加しました:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ index.php/$1 [L] 
RewriteBase/

問題は今では、あります私は、私のhtaccessファイルにこれらのルールの両方を持っていない私はもはやように私の.cssや.jsのファイルにアクセスすることができる午前:

http://domain.tld/assets/css/min/all/default/0.2.3.css 

は、どのように私は前を無視するindex.phpに再ルーティング得ることができます私のCSSとjsを書き直すと大事なルール?

答えて

1

あなたはassets/ディレクトリをスキップするように最後のルールで否定先読みを使用することができます。

RewriteEngine on 

RewriteRule ^assets/css/min/([\w.-]+)/([\w.-]+)/([\w.-]+)\.css$ assets/css/min.php?style=$1&theme=$2&ver=$3 [L,QSA] 

RewriteRule ^assets/js/min/([\w.-]+)/([\w.-]+)\.js$ assets/js/min.php?scripts=$1&ver=$2 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(?!assets/)(.+)$ index.php/$1 [L,NC] 

はまた、あなたに感謝し、あなたが短い\w

+1

恐ろしいと[a-zA-Z0-9_]に置き換えることができることに注意してください。 – JROB

+0

無視する追加のディレクトリを追加するには '^(?! assets /)'をどのように変更しますか? – JROB

+0

これは次のように使用できます: 'RewriteRule ^(?!(assets | dir2 | dir3)/)(。+)$ index.php/$ 1 [L、NC]' – anubhava

関連する問題