.htaccess中的Access-Control-Allow-Origin在子目录中不起作用

时间:2018-11-01 10:38:05

标签: html apache .htaccess xmlhttprequest webserver

当我尝试将图像从URL转换为base 64时出现错误,错误是

  

从>原始位置>'https://img.blabla.com/user/profile_pict/1541043536539.jpg'访问>'http://localhost:4200'处的图像已被CORS策略阻止:否>'访问-> Control-Allow-Origin'标头出现在请求的资源。

我已经做了很多工作来纠正此错误,一些人说“您应该将Header set Access-Control-Allow-Origin "*"放在https://img.blabla.com/的.htaccess中”,所以我尝试将.htaccess放入这样。

<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{SERVER_PORT} !443 RewriteRule ^(/(.*))?$ https://%{HTTP_HOST}/$1 [R=301,L] </IfModule>

<FilesMatch "\.(gif|png|css|js|jpg)$"> <ifModule mod_headers.c> Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Methods: "*" Header set Access-Control-Allow-Headers: "Origin, X-Requested-With, Content-Type, Accept, Authorization" </ifModule> </FilesMatch>

.htaccess仅在/index.html中起作用。它在子目录中不起作用。假设我有一个具有以下结构的网站:

/index.html /.htaccess /user/profile_pict/*.jpg /travel_agent/trip/*.jpg

1 个答案:

答案 0 :(得分:0)

在外部根文件夹的.htaccess中尝试此操作:

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>

如果仅涉及.jpg图片,则应将以上代码包装在其中:

<FilesMatch "\.(jpg)$">
...
</FilesMatch>

还有其他使用 .htaccess 的方法,您可以转到目录并在其中创建.htaccess文件,该.htaccess文件仅适用于该目录。 或者 您还可以从根目录 .htaccess

定义目录路径