ApacheHTTPAccess将http重定向到https用于域调用,但不用于ajax

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

我正在将我的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
      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
标题,尽管我不知道如何做…谢谢,我试过了,但没有成功,假设我使用正确。