【问题标题】:.htaccess in subdirectory of default apache2 directory.htaccess 在默认 apache2 目录的子目录中
【发布时间】: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


【解决方案1】:

你有一个错字:

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

你忘了:

【讨论】:

  • 不幸的是,即使在纠正了这个所谓的错字之后,它也无法正常工作。
  • 好吧,对不起,我没有更好的主意。我使用自己的虚拟主机正常工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-02
  • 1970-01-01
  • 2023-03-16
相关资源
最近更新 更多