好的,就这样吧! 我有两个虚拟主机,名为main.aaa.com和static.aaa.com。
我在main.aaa.com中有一个htaccess规则,对于包含js | css | img | ico的每个路径,将从static.aaa.com加载它们。
这是main.aaa.com的htaccess:
Options +Indexes
Options -MultiViews
Options +FollowSymLinks
# Turn on the RewriteEngine
RewriteBase /
RewriteEngine On
#
# Rules
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(css|js|ico|img)$ index.html [PT,L]
RewriteRule ^(.+\.(css|js|img|ico))$ http://static.aaa.com/$1 [L]
正在发生的事情是,一切都运作完美,绝对完美,但...... 如果我在static / js文件夹中创建一个新文件并尝试将其加载到main.aaa.com索引文件中,它只会提供200 OK,文件没有更改,通过查看它似乎htaccess不是没有甚至懒得在静态虚拟主机中查找文件。
我已将文件权限更改为755,所有文件都具有相同的权限和相同的所有者,只是我创建的新文件未加载。
任何帮助将不胜感激!谢谢!
[编辑]:我还尝试重命名现在正确加载的文件,因为我以为我遗漏了一些关于文件权限的内容。停止工作。将其重命名为以前的名称并加载。所以,我在想,是否有文件的历史或者我可以清楚的东西?我想要打破一些东西,任何事情! 如果有帮助的话,使用ubuntu 14.04 LTS和apache 2.4。
答案 0 :(得分:0)
我找到了解决问题的方法,我真的不明白它为什么会起作用,我只是希望当我将文件推送到我的主机时它不会引入任何其他问题。 所以在这里,如果有人像我一样愚蠢:),我已经改变并移动了这一行:
RewriteRule ^(.+\.(css|js|img|ico))$ http://static.aaa.com/$1 [L]
在这一行之上
RewriteRule !\.(css|js|ico|img)$ index.html [PT,L]
最后的结果是这一个:
RewriteRule ^(.+\.(css|js|img|ico))$ http://static.aaa.com/$1 [R,L]
RewriteRule !\.(css|js|ico|img)$ index.html [PT,L]
祝你好运!
编辑:也许答案是必须首先写入带有R标志的重定向。也许