我想为Nginx写一个重写规则,将任何javascript文件请求重定向到特定的JS文件。例如,“http://example.com/path1/path2/sample.js?a=1&b=2”应重定向到“http://example.com/myjavascript.js”。所以我将此规则添加到/etc/nginx/sites-enabled/example.com配置文件中:
rewrite .*\.js.* myjavascript.js last;
所以任何包含.js的网址都应该被myjavascript.js替换。但是,当我尝试使用网址“http://example.com/path1/path2/sample.js?a=1&b=2”时,它会失败(404)。但是,奇怪的是,如果我用HTML文件替换js文件,例如:
rewrite .*\.js.* /hello.html last;
它正确地重定向它。 myjavascript.js与hello.html位于同一文件夹中,但它没有正确地将其重定向到此路径。
请你告诉我为什么它不起作用?
答案 0 :(得分:0)
问题是在javascript文件名之前缺少'/',所以正确的应该是:
rewrite .*\.js.* /myjavascript.js last;