我正在处理基于某些条件在我的.htaccess文件中应用URL重写规则,但由于我使用Apache .htacces进行URL重写的知识水平接近零,因此已经触发了。我的使用案例URL基于特定条件的重写规则
我的WordPress应用程序中使用的插件很少,以及那些用于某些CSS和JavaScript的插件,我希望这些URL应该来自CDN服务器,由于某些问题我无法使用简单重写将重写整个应用程序的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
我不知道如何做这样的条件基于URL重写,任何建议将真正有用的
编辑 这是根
我目前的.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} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
我已经wp-content
文件夹下创建一个新的.htaccess
文件按Michael
建议用以下条目
RewriteEngine On
<IfModule mod_rewrite.c>
RewriteBase /wordpress/
RewriteCond %{REQUEST_FILENAME} ^.+\.(css|js)$
RewriteRule wp-content/plugins/(nivo-slider-light|Usernoise|lightbox-plus|wp-content-slideshow|content-slide)/(.+)$ http:/cdn.cloudfront.net/wp-content/plugins/$1/$2 [L,R=302,QSA]
</IfModule>
,但似乎这不是上述插件所有的CSS和JS文件正在努力为仍在来自本地主机的URL,而不是来自我的CDN服务器。我甚至在我的根目录的.htaccess文件中将这些行注释掉了。
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})
但是这也没有对URL进行任何更改。
我想这是我的本地机器上,似乎它不是working.Is那里像'HTTP网址任何关系://本地主机/ WordPress的/ WP- content/plugins/nivo-slider-light/nivo-slider.css?ver = 3.3.1'这个部分是'?ver = 3.3.1',每个URL都由插件提供。 – 2012-04-15 18:17:11
@ user702325用'[L,R = 301,QSA]添加'QSA''将现有查询字符串附加到请求上。 – 2012-04-15 18:32:18
我也尝试过这一个,但这也不work.i在''.htaccess'文件位于根'RewriteCond%{QUERY_STRING}(\ <|%3C)。*脚本。*(\> | %3E)[NC,OR] RewriteCond%{QUERY_STRING} GLOBALS(= | \ [| \%[0-9A-Z] {0,2})[OR] RewriteCond%{QUERY_STRING} _REQUEST(= | \ [| \%[0-9A-Z] {0,2})'不确定这与否有关系 – 2012-04-15 18:37:29