将所有AJAX请求定向到https

时间:2013-06-11 01:30:41

标签: ajax .htaccess https

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

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

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

1 个答案:

答案 0 :(得分: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"