.htaccess HTTP到HTTPS干净重定向

.htaccess HTTP到HTTPS干净重定向,.htaccess,.htaccess,我一直在搜索网络和这个网站,并遵循一些建议,我设法让它一瘸一拐,但它仍然不是完美的 问题就在这里。当有人使用纯HTTP访问我的网站时,它会将他们重定向到HTTPS,但url如下所示 这很难看,但这不是最大的问题。问题是,当网站成员尝试登录时,在填写详细信息并单击“登录”后,页面会重新加载以清空登录字段。再次输入信息并单击登录,会员可以再次登录。对于那些使用纯http访问网站的人来说,这会让他们感到沮丧,直到他们发现他们想改用https 然而,我想解决这个问题,我请求您的帮助 这是我当前的.hta

我一直在搜索网络和这个网站,并遵循一些建议,我设法让它一瘸一拐,但它仍然不是完美的

问题就在这里。当有人使用纯HTTP访问我的网站时,它会将他们重定向到HTTPS,但url如下所示

这很难看,但这不是最大的问题。问题是,当网站成员尝试登录时,在填写详细信息并单击“登录”后,页面会重新加载以清空登录字段。再次输入信息并单击登录,会员可以再次登录。对于那些使用纯http访问网站的人来说,这会让他们感到沮丧,直到他们发现他们想改用https

然而,我想解决这个问题,我请求您的帮助

这是我当前的.htaccess文件,我知道有些东西很容易更改,但我看不出来

谢谢大家!

IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On

  RewriteCond %{HTTP_HOST} !^www\.
  RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

  RewriteCond %{HTTP:X-Forwarded-Proto} =http
  RewriteCond %{HTTP_USER_AGENT} !(SEAOSEAPP)
  RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]

  # Get rid of index.php
  RewriteCond %{REQUEST_URI} /index\.php
  RewriteRule (.*) index.php?rewrite=2 [L,QSA]

  # Rewrite all directory-looking urls
  RewriteCond %{REQUEST_URI} /$
  RewriteRule (.*) index.php?rewrite=1 [L,QSA]

  # Try to route missing files
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} public\/ [OR]
  RewriteCond %{REQUEST_FILENAME} \.    (jpg|gif|png|ico|flv|htm|html|php|css|js)$
  RewriteRule . - [L]

  # If the file doesn't exist, rewrite to index
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?rewrite=1 [L,QSA]

</IfModule>

# sends requests /index.php/path/to/module/ to "index.php"
# AcceptPathInfo On

# @todo This may not be effective in some cases
FileETag Size

<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml     text/css application/x-javascript application/javascript
</IfModule>

如果所有URI都只指向域,为什么要将该参数添加到它们?无论如何,您的问题是,当一些人访问站点时,您需要将HTTPS设置为默认值。完全不允许http,您就不会有这个问题。或者确保您的登录页面始终为https。您是否也是负载平衡器?如果没有,为什么要使用HTTP:X-Forwarded-Proto?谢谢您的评论。如果我只是不允许http,那么人们试图通过书签或旧链接访问网站,他们将无法访问,对吗?问题是,在我们添加SSL之前,该网站已经使用http大约一年了。所以我想为那些仍然有旧链接的人找到最好的方法,通过一个干净的重定向到https来访问网站。但正如你所看到的,这并不好。是的,我正在使用负载均衡器。您可以从http重定向到https。这在htaccess中很容易做到,但是如果您使用的是LB,那么大多数LB都有类似.htaccess的规则,您可以告诉它将http请求重定向到https。您应该在负载平衡器中处理此问题。