我正在根据我的 .htaccess 文件中的某些条件应用 URL 重写规则,但由于我对使用 Apache .htacces 进行 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>
我根据建议在文件夹.htaccess
下创建了一个新文件,并带有以下条目wp-content
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 文件都使用来自 localhost 而不是来自我的 CDN 服务器的 URL 提供服务。我什至从我的根目录的 .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 进行任何更改