我有一个简单的CDN,如果用户请求它,我想要足够智能地提供特定版本的文件,否则如果没有指定版本,则提供给我们的版本。
我想要提供的文件是jQuery和jQuery UI脚本文件。我遇到的问题是我希望/ ui位于/ jquery文件夹中,这导致404,因为它被解释为jQuery版本。
.htaccess中的覆盖工作如何?如果所有其他方法都失败了,我可能只需将/ ui移动到根目录并将其重命名为/ jqueryui或其他内容。
我当前的.htaccess文件是:
RewriteRule ^jquery/ui/(.*)$ scripts/jquery/jquery-ui.$1.min.js
RewriteRule ^jquery/ui$ jquery/ui/2.0
RewriteRule ^jquery/(.*)$ scripts/jquery/jquery.$1.min.js
RewriteRule ^jquery$ jquery/1.0
http://mysite.com/jquery/1.0投放1.0
http://mysite.com/jquery/ui投放2.0
http://mysite.com/jquery/ui/2.0为/scripts/jquery/jquery.ui/2.0/ui.min.js返回404
有人能找到我出错的地方吗?
(版本号已更改,以便更明显地发生了什么)
答案 0 :(得分:1)
您可以使您的正则表达式更具体,以匹配版本号,然后^jquery/(.*)$
将与jquery/ui/2.0
不匹配。您可能还希望使用L
标志,以便在当前迭代中停止重写。尝试这样的事情:
RewriteRule ^jquery/ui/([0-9]+\.[0-9]+)$ scripts/jquery/jquery-ui.$1.min.js [L]
RewriteRule ^jquery/ui$ jquery/ui/2.0 [L]
RewriteRule ^jquery/([0-9]+\.[0-9]+)$ scripts/jquery/jquery.$1.min.js [L]
RewriteRule ^jquery$ jquery/1.0 [L]