2017-01-07 3 views
1

私はこの2時間を試してきました。mod_rewriteを使用したJS/CSSのバージョン管理のためのApacheルール

どのように私はこれを行うにモッズ書き換えを使用することができます。

/assets/app.min.4364736473.js - > /assets/app.min.js
/assets/app.min.4364736473.cssを - > /assets/app.min.css

+0

おそらく受け入れる答えを選択できますか?完了した質問に印を付けると良いでしょう。ありがとう。 – SuperDuperApps

答えて

4

ないかもしれませんこれは通常の拡張には使用されないためです。存在する場合は、実行前に番号のファイルが存在しないことを確認します。 .minは、それがまたはそれなしで動作しますが、オプションである:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)\.\d+(\.(?:js|css))$ $1$2 

最後に、他のルール以来[L]フラグを使用していないことは、書き換えられたURLとその出来事を停止する必要はありませんに適用する必要がある場合があります。

.htaccessまたは<Directory>のコンテキストでのみ正しく動作します。それ以外の場合(ルート設定または<VirtualHost>コンテキスト)、ファイルテストが機能するように変更する必要があります。そうしないと、既存のファイルに気付かれずに実行されます。

+0

私は仕事をすることができる最も単純なルールに固執しようとしますが、あなたのものは役に立ちます。 – nikoshr

+0

恐ろしいです!完璧に動作します。 – delato468

2

それがnikoshrの答えに何か問題がありますが、おそらくこれは、より汎用性があり、どこでもフォーマットが使用されているサイトで作業していること

RewriteEngine on 
RewriteRule /assets/app\.min\.\d+\.js$ /assets/app.min.js [L] 
RewriteRule /assets/app\.min\.\d+\.css$ /assets/app.min.css [L] 
+0

ty..nopeは動作しません。私は RewriteRule /assets/app\.min\.\d+\.(js|css)$ $ 1. $ 3 [L] – ConfusedAmish

+0

で始まるような何かを持っていました:)名前に大文字のiがあったので\ d +は働いていませんでした... – ConfusedAmish

関連する問題