1

.htaccessファイルの特定の条件に基づいてURL書き換えルールを適用しているところですが、Apache.htaccesを使用したURL書き換えに関する知識がほぼゼロであるために打撃を受けました。これが私の使用例です。

WordPressアプリケーションにプラグインがほとんどなく、特定のCSSとJavaScriptを使用するプラグインがあります。いくつかの問題があるため、これらのURLをCDNサーバーから提供する必要があります。それが私のアプリケーション機能を壊しているので、アプリケーション全体。

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-contentMichael

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ファイルは、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に変更を加えませんでした

4

1 に答える 1

1

これは、ルートディレクトリ内の.htaccessに配置できます。書き直したいプラグインは、で()区切って中に置くことができます|

RewriteEngine On
# Rewrite pluginA plugin X, and pluginZ to the CDN. Add add more with |
RewriteRule wp-content/plugins/(pluginA|pluginX|pluginZ)/(.+)$ http:/www.cdn.mydomain.com/wp-content/plugins/$1/$2 [L,R=301,QSA]

注:上記はすべてのプラグインファイルを書き換えます。cssファイルとjsファイルのみである必要がある場合は、

RewriteCond %{REQUEST_FILENAME} \.(css|js)$
RewriteRule wp-content/plugins/(pluginA|pluginX|pluginZ)/(.+)$ http:/www.cdn.mydomain.com/wp-content/plugins/$1/$2 [L,R=301,QSA]
于 2012-04-15T17:51:14.130 に答える