Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 使用.htaccess的URL重写规则未按预期工作_Apache_.htaccess_Mod Rewrite_Wordpress - Fatal编程技术网

Apache 使用.htaccess的URL重写规则未按预期工作

Apache 使用.htaccess的URL重写规则未按预期工作,apache,.htaccess,mod-rewrite,wordpress,Apache,.htaccess,Mod Rewrite,Wordpress,继续我先前的问题 我正在尝试像这样重写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.c

继续我先前的问题 我正在尝试像这样重写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>

选项+FollowSymLinks
重新启动发动机
重写BASE/wordpress/
重写条件%{QUERY\u STRING}(\\\\%3E)[NC,或]
重写条件%{QUERY\u STRING}全局(|\[|\%[0-9A-Z]{0,2})[或]
重写条件%{QUERY\u STRING}\u请求(|\[|\%[0-9A-Z]{0,2})
重写规则^index\.php$-[L]
重写条件%{REQUEST_FILENAME}^.+\(css|js)$
重写规则^wp content/plugins/(nivo slider light | Usernoise | lightbox plus | wp content slideshow | content slideshow | content slide)/(.+)$http:/abc.cloudfront.net/wp content/plugins/$1/$2[L,R=302,QSA]
重写cond%{REQUEST_FILENAME}!-f
重写cond%{REQUEST_FILENAME}!-d
重写规则。/wordpress/index.php[L]
我已经尝试了所有可能的方法来重写URL,以便JS和CSS可以从我的CDN服务器获得服务,但似乎apache从未接受过这条规则。在这方面的任何帮助/指针都将非常感谢。

将这条规则作为您的第一条规则(就在
RewriteBase
行之后)

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

将此作为您的第一条规则(就在
RewriteBase
行之后)


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

可能是因为
RewriteBase/wordpress/
行?@LazyOne:这是我本地机器上的一个文件,我在服务器上部署时已将其删除,但没有任何效果。可能是
RewriteBase/wordpress/
line的原因?@LazyOne:这是我本地机器上的一个,我在服务器上部署时删除了它,但没有任何效果。不,没有效果。我不确定你关于移动
js
css
文件的第二个建议。你能检查一下你的access.log以确定你使用的URI是什么吗我在Apache中检查了URL,它与原来的URL相同,而不是重写的URL“GET/wordpress/wp content/plugins/nivo slider light/custom nivo slider.css?ver=3.3.1 HTTP/1.1”200 772在代码中正确(我复制粘贴)您使用的是
http:/abc.cloudfront.net
而不是
http://abc.cloudfront.net
。我刚刚测试了此更改,现在它工作正常。请确保上面的.htaccess位于DOCUMENT\u ROOT下的
/wordpress
文件夹中。我尝试了上述操作,但仍然不起作用,因为URL仍然没有重写,但我可以从firebug.CSS和JS中可以看到一个奇怪的问题,我们已经为其重写了URL,根据firebug的说法,它们不可用,因为它们被称为
www.mysitedomian.com/wordpress/…path
,因为wordpress不存在,所以我可以理解这个问题,但是我们已经将URL配置为
http:/abc.cloudfront.net
and不是
www.mysitedomian.com
,所以我不知道为什么会发生这种情况。我在服务器上尝试了代码(live)但是它并没有进行任何URL重写不起作用。我不确定你关于移动
js
css
文件的第二个建议。你能检查一下你的access.log以确定你在Apache中得到的URI是什么吗。我检查了URL和它的原始URL,而不是重写的URL
[16/Apr/2012:19:20:38+0530]“GET/wordpress/wp content/plugins/nivo slider light/custom nivo slider.css?ver=3.3.1 HTTP/1.1”200 772
在代码中正确(我复制粘贴)您使用的是
http:/abc.cloudfront.net
而不是
http://abc.cloudfront.net
。我刚刚测试了此更改,现在它工作正常。请确保上面的.htaccess位于DOCUMENT\u ROOT下的
/wordpress
文件夹中。我尝试了上述操作,但仍然不起作用,因为URL仍然没有重写,但我可以从firebug.CSS和JS中可以看到一个奇怪的问题,我们已经为其重写了URL,根据firebug的说法,它们不可用,因为它们被称为
www.mysitedomian.com/wordpress/…path
,因为wordpress不存在,所以我可以理解这个问题,但是我们已经将URL配置为
http:/abc.cloudfront.net
and不是
www.mysitedomian.com
,所以我不知道为什么会发生这种情况。我在服务器上尝试了代码(live),但没有进行任何URL重写
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]