【发布时间】:2018-11-19 23:28:10
【问题描述】:
我已经在我的计算机上安装并运行了 apache2,并且我在
中有一个文件夹/var/www/html/my-site
我要启用的
Header set Access-Control-Allow-Origin "*"
到目前为止,我在 my-site 文件夹中放置了一个 .htaccess 文件,其中
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Credentials true
</IfModule>
但我有点不确定在哪里为目录启用 .htaccess。我确保加载了 apache2 头模块,并在我的 apache2.conf 文件中放置了一个新目录列表(不确定这是否可行?),但仍然无法正常工作:
<Directory /var/www/html/my-site>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
我不想搞乱添加新站点并可能进行反向代理,所以我只想让这个站点正常工作。有可能吗,我在这里做错了吗?
最后,我尝试使用 javascript lib axios 并跨域运行请求,但我收到错误,这就是我这样做的原因:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://sitethatisdesired.com. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing)
【问题讨论】:
-
我不确定“IfModule”是否在 htaccess 中工作。将
Header set Access-Control-Allow-Origin "*"放入您的虚拟主机中。 -
请原谅我的无知,但具体在哪个文件中?
-
您在其中放置
Directory的同一文件。并在更改后重新启动/重新加载 -
那是主要的 apache2.conf 文件,我不希望从任何地方为 * 启用访问控制,而只是针对那个特定的子目录。我试图从 .htaccess 中删除“IfModule”,然后只保留 Header 行,但这仍然不起作用。是否有一种简单的方法来检查 .htaccess 是否被正确读取?
-
您可以添加自定义虚拟主机文件。通常在
/etc/apache2/sites-available/之后a2ensite enable myvhost.con并重新启动
标签: apache2