设置.htaccess访问控制标头仅影响一个网站

时间:2016-10-16 06:34:08

标签: apache .htaccess cors apache2.2 mautic

我有一个网站mysite.com,该网站从运行Mautic的子域mautic.mysite.com请求资源。如果没有mautic .htaccess中的访问控制头,那么我会收到这些资源的403错误,当我尝试访问Mautic时,我得到500错误。我只是在请求来自mysite.com时尝试设置标头,但无济于事。这是我尝试过的:

# create variable for http or https
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ - [env=proto:https]
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ - [env=proto:http]


<If "%{HTTP_REFERER} == %{ENV:proto}://!mautic\.mysite.com/.*"> 
    <IfModule mod_headers.c>
        Header add Access-Control-Allow-Origin %{ENV:proto}://mysite.com
        Header set Access-Control-Allow-Credentials true
        Header set Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token
    </IfModule>
</If>

有了上面的资源访问没有麻烦,但我仍然得到500错误。任何人都可以告诉我如何解决这个问题,或者是否有另一种方法可以解决这个问题?

干杯

更新: 我意识到问题是由于hostgator使用的是apache 2.2,它不支持If语句。目前我正在尝试一些事情:

SetEnvIfNoCase Origin %{ENV:proto}://mysite.com ENV_SET
Header add Access-Control-Allow-Origin %{ENV:proto}://mysite.com env=ENV_SET

但是,这不起作用。如果我取出SetEnvIf,仍然会添加标题。

我发现this表明它应该放在配置而不是.htaccess中,但是我无法理解这意味着什么。

0 个答案:

没有答案