1

私はnginxが初めてで、これを行う方法がまったくわかりません。以下のコードが htaccess で本質的に行うことは、たとえば

ブラウザーがこの Web アドレスからこの css ファイルを要求した場合

http://www.example.com/folder1/css/style-30493094.css

次に、このファイルを表示します

http://www.example.com/folder1/css/style.css

このコードで定義されている他のすべての拡張子についても同様です。css、js、png、jpg、gif ブラウザがこの Web アドレスからこの js ファイルを要求した場合と同様

http://www.example.com/folder1/js/javascript-2938293.js

次に、このファイルを表示します

http://www.example.com/folder1/js/javascript.js

実際、私はこれを達成しようとしています。http://derek.io/blog/2009/auto-versioning-javascript-and-css-files/

RewriteEngine On
RewriteRule ^folder1/(css|js|images)/([a-z]+)-([0-9]+)\.(css|js|png|jpg|gif)$ /folder1/$1/$2.$4 [L]
4

1 に答える 1

1

これに基づいて: http://wiki.nginx.org/HttpRewriteModule#rewrite 現在の正規表現を取得して nginx.conf で使用できるようです。

rewrite ^folder1/(css|js|images)/([a-z]+)-([0-9]+)\.(css|js|png|jpg|gif)$ /folder1/$1/$2.$4 last;

したがって、サーバーブロック全体は次のようになります。

server {
    listen 192.168.0.1;
    server_name blah.blah.com;

    location ~ \.(css|js|png|jpg|gif) {
        rewrite ^folder1/(css|js|images)/([a-z]+)-([0-9]+)\.(css|js|png|jpg|gif)$ /folder1/$1/$2.$4 last;
    }
}

編集:正規表現を適切に調整するだけです。付属のケースでは:

rewrite ^(.*/?)([a-z]+)-([0-9]+)\.(css|js|png|jpg|gif)$ /$1$2.$4 last;

どちらが書き直します:

[Anything with an optional trailing slash (or nothing)] followed by [at least one alphabetic character (lowercase only)] followed by [a hyphen] followed by [at least one numeric character] followed by [a dot] followed by [one of css|js|png|jpg|gif]

[That first optional text followed by an optional slash][the alphabetic part (i.e. style)].[the final css|js|png|jpg|gif]
于 2012-10-01T12:08:26.673 に答える