.htaccess 在htaccess中,如何将用户从http重定向到https并再次返回

.htaccess 在htaccess中,如何将用户从http重定向到https并再次返回,.htaccess,redirect,https,.htaccess,Redirect,Https,我试图让登录页面重定向到https,而所有其他页面都恢复为标准http。当我使用/login作为地址时,它会显示为/index.php?page=login,并且不会显示在安全页面上 有关的htaccess代码如下: RewriteCond %{SERVER_PORT} 80 RewriteCond %{REQUEST_URI} ^/login$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L] Rewri

我试图让登录页面重定向到https,而所有其他页面都恢复为标准http。当我使用/login作为地址时,它会显示为/index.php?page=login,并且不会显示在安全页面上

有关的htaccess代码如下:

RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} ^/login$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L]

RewriteCond %{REQUEST_URI} !^/login$
RewriteCond %{SERVER_PORT} 443 
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L]

RewriteRule ^([a-zA-Z0-9_\-\(\)]+)[/]?$ /index.php?page=$1

最好在应用程序级别执行此操作,即直接将“登录”链接作为HTTPS链接发送


从HTTP重定向到HTTPS的问题是,客户端首先通过普通HTTP发出请求。在只转到HTTPS初始页面的情况下,这不一定是个问题,但是如果您在HTTP请求中发送凭据,并且该请求被透明地重定向到HTTPS页面,那么这些凭据无论如何都会被泄漏。

最好在应用程序级别执行此操作,即发送“登录”直接链接为HTTPS链接


从HTTP重定向到HTTPS的问题是,客户端首先通过普通HTTP发出请求。在只转到HTTPS初始页面的情况下,这不一定是个问题,但是如果您在HTTP请求中发送凭据,该请求将透明地重定向到HTTPS页面,无论如何,它们都会被泄露。

为了防止凭证在应用程序级无意中以明文形式发送,您可以在CSP中使用
https:
方案源代码。为了防止凭证在应用程序级无意中以明文形式发送,您可以使用的
方案源代码
https:
在CSP中。