的.htaccess 只有当主机名匹配?(.htaccess onl

2019-10-19 14:14发布

我刚刚设置好的了同样的代码本地environament,我不得不在生产environament成流浪汉虚拟机ubuntu32,

问题是,我得到了内部服务器错误与我的所有规则.htaccess文件

于是我开始移除代码分离块,这是麻烦:

# 1 weeks
<FilesMatch "\.(js|css)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
# 1 weeks
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
# 1 MIN
<FilesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=60, private, proxy-revalidate"
</FilesMatch>

问题是,我想用完全相同的代码为所有environaments,是有办法,我只能包括该块<filesMatch>仅如果不是在localhost

我发现这个答案 ,但它只是指一个网页,而不是主机名。

Answer 1:

你或许可以这样做:

SetEnvIf Host ^ NON_LOCAL
SetEnvIf Host localhost !NON_LOCAL

<FilesMatch "\.(js|css)$">
Header set Cache-Control "max-age=604800, public" env=NON_LOCAL
</FilesMatch>

# 1 weeks
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public" env=NON_LOCAL
</FilesMatch>

# 1 MIN
<FilesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=60, private, proxy-revalidate" env=NON_LOCAL
</FilesMatch>


文章来源: .htaccess only if host name matches?