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