我在.htaccess文件中包含以下内容,以便将所有网页请求重定向到https:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}:443%{REQUEST_URI}
现在,如果我使用相对地址进行AJAX调用而未指定完整地址,那么当未指定https时,AJAX请求是否也会被重定向到https?由于地址未显示在浏览器的地址栏中,我无法检查是否使用了http或https。
答案 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"