在Apache上的/ var / www下的子目录上启用CORS

时间:2016-04-25 19:56:48

标签: apache cors

我正在尝试为我网站上的子目录启用CORS,之后读取根文件夹上的域使用通配符可能存在安全风险。

这是我的apache2.conf的一部分,它是根文件夹上的不安全通配符。

<Directory /var/www/>
     Options Indexes FollowSymLinks
     AllowOverride None
     Require all granted
     <IfModule mod_headers.c>
             Header set Access-Control-Allow-Origin "*"
     </IfModule>
</Directory>

有没有办法只为var / www的子目录启用CORS?

我需要删除

'Header set Access-Control-Allow-Origin "*"'
来自var / www的

,但是当我尝试这样做时:

<Directory /var/www/subdir/>
     Options Indexes FollowSymLinks
     AllowOverride None
     Require all granted
     <IfModule mod_headers.c>
             Header set Access-Control-Allow-Origin "*"
     </IfModule>
</Directory>

我在Chrome中收到错误告诉我

No 'Access-Control-Allow-Origin' header is present on the requested resource.

有没有办法让子文件夹启用CORS而不是root用户? 感谢。

1 个答案:

答案 0 :(得分:2)

我回答差不多一年了,但是我想和你做同样的事情。我唯一的问题是我的目标是错误的目录(忘了把/ var / www / html / subdir)。当我定位到正确的目录时,我只能在该特定目录上启用CORS。

除此之外,我没有为该目录指定任何指令。这是我的apache2.conf的样子:

<Directory /var/www/>
        Options +FollowSymLinks -Includes -Indexes
        AllowOverride None
        Require all granted
        <LimitExcept GET POST HEAD>
                deny from all
        </LimitExcept>
</Directory>

<Directory /var/www/html/subdir/>
        <IfModule mod_headers.c>
                Header set Access-Control-Allow-Origin "*"
        </IfModule>
</Directory>