2

JavaScript / CSSでキャッシュバスティングクエリ文字列を使用していますが、ファイル名の一部になるようにそれを書き直す方法を考えていますか?

代わりに、website.com / js / m / file.min.js?paramsをwebsite.com/js/m/file.min.params.jsに書き直したいと思います。

  <IfModule mod_rewrite.c>

      # Domain Redirects

      RewriteEngine On
      RewriteBase /

      RewriteRule ^/js/m/([a-zA-Z.]+).min.[0-9]+.js$ /js/m/$1.min.js [L]

      RewriteCond %{REQUEST_FILENAME} -s [OR]
      RewriteCond %{REQUEST_FILENAME} -l [OR]
      RewriteCond %{REQUEST_FILENAME} -d
      RewriteRule ^.*$ - [NC,L]

      #If we're here, redirect through zend:
      RewriteRule ^.*$ index.php [NC,L]
    </IfModule>
4

1 に答える 1

2

まず第一に、このルールは正しくなく、機能しません。

RewriteRule ^/js/m/([a-zA-Z.]+).min.[0-9]+.js$ /js/m/$1.min.js [L]

理由: RewriteRuleは、先頭にスラッシュを付けずにURIと一致します。

今あなたの仕事:

代わりに、website.com / js / m / file.min.js?paramsをwebsite.com/js/m/file.min.params.jsに書き直したいと思います。

このルールで処理できます:

# redirect from /js/m/file.min.js?params to /js/m/file.min.params.js
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(js/m/.+?)\.js\?([^\s&]+) [NC]
RewriteRule ^ /%1.%2.js? [R=301,L]

# forward from /js/m/file.min.params.js to /js/m/file.min.js?params
RewriteRule ^(js/m/.+?\.min)\.([^.]+)\.js$ $1.js?$2 [L,QSA,NC]
于 2013-03-25T04:01:22.683 に答える