ApacheHTTPAccess将http重定向到https用于域调用,但不用于ajax
我正在将我的web/ios/android应用程序切换到https。我使用的是AWS Elastic Beanstalk和.ebextension配置。为了自动重定向键入非https地址的用户,我有以下重写规则:ApacheHTTPAccess将http重定向到https用于域调用,但不用于ajax,ajax,apache,.htaccess,redirect,amazon-elastic-beanstalk,Ajax,Apache,.htaccess,Redirect,Amazon Elastic Beanstalk,我正在将我的web/ios/android应用程序切换到https。我使用的是AWS Elastic Beanstalk和.ebextension配置。为了自动重定向键入非https地址的用户,我有以下重写规则: files: "/etc/httpd/conf.d/httpd_redirect.conf" : mode: "000644" owner: root group: root content: | RewriteEngine On
files:
"/etc/httpd/conf.d/httpd_redirect.conf" :
mode: "000644"
owner: root
group: root
content: |
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule . https://%{SERVER_NAME} [L,R=301]
问题是我想保持与当前iOS和Android应用程序的向后兼容性,这些应用程序仍然可以进行http ajax调用
我如何将键入url的人的http重定向到https,而不是ajax调用
谢谢
根据War10ck的评论,我尝试添加以下内容以跳过AJAX请求
RewriteCond %{HTTP:X-Requested-With} !=XMLHttpRequest
但这也不起作用:
# Redirect HTTP to HTTPS
"/etc/httpd/conf.d/https_redirect.conf":
mode: "000644"
owner: root
group: root
content: |
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP:X-Requested-With} !=XMLHttpRequest
RewriteRule . https://%{SERVER_NAME} [L,R=301]
尝试使用PhoneGap使用iOS应用程序连接到服务器时遇到的错误是:
[Error] XMLHttpRequest cannot load https://example.com/get_userinfo.php?&session_id=ca913df1d110b330ed405d524b0695b2. Origin http://localhost:12344 is not allowed by Access-Control-Allow-Origin.
如果我删除http-to-https重定向,一切正常,没有错误。您可能会想查找
X-request-With
头,尽管我不知道如何做…谢谢,我尝试过,但没有成功,假设我使用正确。你可能会想查找X-request-With
标题,尽管我不知道如何做…谢谢,我试过了,但没有成功,假设我使用正确。