0

我在 .htaccess 文件中包含以下内容,以便将所有页面请求重定向到 https:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}:443%{REQUEST_URI}

现在,如果我使用相对地址而不指定完整地址进行 AJAX 调用,当未指定 https 时,AJAX 请求是否也会重定向到 https?由于浏览器的地址栏中没有显示地址,所以我无法检查使用的是http还是https。

4

1 回答 1

0

据我所知,%{HTTPS}只有on当它不可用时,该键才可能存在,该键根本不存在。如果您不发布数据,AJAX 请求将遵循正常重定向,但是将 AJAX 请求重定向到 https 将导致通常被禁止的跨站点请求(包括不同的协议和子域)。有一种叫做CORS的技术可以实现这样的事情。为了实现这一点,您需要输出以下 http 标头:

Access-Control-Allow-Origin: http://example.com

在那里,您需要将域与您的实际域交换。比您还可以直接查询 HTTPS 资源而无需重定向。

如果你已经安装了mod_headers,你可以在你的 .htaccess 文件中使用这一行:

Header add Access-Control-Allow-Origin "http://example.com"
于 2013-06-12T05:22:51.837 回答