1

继续我之前的问题url-rewrite-rule-based-on-certain-conditions 我正在尝试像这样进行 URL 重写

http://www.mydomain.com/wp-content/plugins/pluginA/abc.css
http://www.mydomain.com/wp-content/plugins/pluginA/abc.js

我希望当 CSS 和 JS 来自这个插件(插件 A)或任何其他我想重写其 URL 的插件时,URL 应该被重写为

http://www.cdn.mydomain.com/wp-content/plugins/pluginA/abc.css
http://www.cdn.mydomain.com/wp-content/plugins/pluginA/abc.js

这就是我在 .htaccess 文件中尝试的方法

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /wordpress/
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} ^.+\.(css|js)$
RewriteRule ^wp-content/plugins/(nivo-slider-light|Usernoise|lightbox-plus|wp-content-slideshow|content-slide)/(.+)$ http:/abc.cloudfront.net/wp-content/plugins/$1/$2 [L,R=302,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

我已经尝试了所有可能的方法来重写 URL,以便应该从我的 CDN 服务器获取 JS 和 CSS,但似乎 apache 从未采用过该规则。这方面的任何帮助/指针将不胜感激。

4

1 回答 1

1

将此作为您的第一条规则(紧随其后RewriteBase

RewriteRule ^(wp-content/plugins/(nivo-slider-light|Usernoise|lightbox-plus|wp-content-slideshow|content-slide)/[^.]+\.(css|js))$ http://abc.cloudfront.net/$1 [L,R,NC]

另外,如果它不起作用,请尝试将您的*.js*.css文件从wp-content/plugins/路径下的本地目录中移开。

于 2012-04-16T13:42:22.867 回答