.htaccess - 导致 CORS 错误的内容安全策略
问题描述
奇怪的是,如果域具有 . 最后,例如:
domain.uk
- 工作正常
domain.uk.
- 有 CORS 错误
似乎.
最终操作系统被视为域的一部分,因此被认为是不同的来源。似乎只是 Chrome 中的问题。可能是 Chrome 错误?
想也许我可以通过设置重定向在我的 .htaccess 中解决这个问题,但是 .htaccess 不能这样做,因为它只能在域之后匹配,并且.
被视为域的一部分。
有什么建议么?
解决方案
似乎
.
最终操作系统被视为域的一部分,因此被认为是不同的来源。似乎只是 Chrome 中的问题。可能是 Chrome 错误?
它是域的一部分。尾随的点表示完全限定的域名。如果您只在 Chrome 中看到不同的行为,那么 Chrome 可能只是更加严格——这不是一个错误。
尝试https://stackoverflow.com./
(例如) - 您可能会出现注销(因为 cookie 未通过)。
想也许我可以
.htaccess
通过设置重定向来解决这个问题,但是 .htaccess 不能这样做,因为它只能在域之后匹配,并且.
被视为域的一部分。
你可以在.htaccess
. 点作为Host
标头的一部分发送(因为它是域的一部分) - 在HTTP_HOST
服务器变量中可用。通常,您会将此作为规范(www 与非 www / HTTP 到 HTTPS)重定向的一部分,但您可以使用 mod_rewrite 执行以下操作以删除请求的主机名上的尾随点:
RewriteEngine On
RewriteCond %{HTTP_HOST} (.+)\.$
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
反向引用包含在前面的条件中捕获的%1
主机名,减去尾随点。
更新:
我正在使用 Wordpress,所以它已经在 htaccess 中有一些重写规则,......你能建议如何添加你的重写吗
您需要将此重定向放置在现有 WordPress 指令之前(即在该# BEGIN WordPress
部分之前),靠近文件顶部。
您不需要重复该RewriteEngine On
指令,因为这已经在 WordPress 部分的后面发生。(如果有多个RewriteEngine
指令,则最后一个实例获胜并控制整个文件。)
推荐阅读
- botframework - 如何在 Bot Framework 中获取用户详细信息
- c# - 当字符串值具有“\r\n\r\n”时,如何在c#中基于“\r\n”拆分字符串
- java - 猜数字android应用程序-输入空值后崩溃
- javascript - Flutter Web:使用 flutter build web 构建时缺少 main.dart.js 和 JavaScript 文件,但使用 flutter run 可以正常工作
- javascript - 如何编辑或调用这个 jQuery 函数来处理原生 JavaScript onmouseout?
- json - 在 Zapier 中处理列响应,其中一列为空白
- java - 即使行上没有任何内容为空,空指针异常
- python - 如何获取多个域的数据框中格式化的 ssl 信息?
- python - 如何在 / 处修复 Django TemplateDoesNotExist?
- c++ - 在 cmake 中使用 Pcap++ 库