使用 SSL 避免登录页面重定向

Posted

技术标签:

【中文标题】使用 SSL 避免登录页面重定向【英文标题】:Avoiding Landing Page Redirects with SSL 【发布时间】:2014-12-02 01:46:37 【问题描述】:

我最近对我的网站进行了 Google PageSpeed 分析并收到以下消息:

避免着陆页重定向

您的页面有 2 个重定向。重定向引入了额外的延迟 在页面加载之前。

避免以下重定向链的着陆页重定向 网址。

http://example.net/

https://example.net/

https://www.example.net/

对此我能做些什么(比如以某种方式修改我的 htaccess 文件),或者这是一个不可避免的后果?

这是我的 htaccess 以防万一:

RewriteCond %HTTPS off
# First rewrite to HTTPS:
# Don't put www. here. If it is already there it will be included, if not
# the subsequent rule will catch it.
RewriteRule ^(.*)$ https://%HTTP_HOST%REQUEST_URI [L,R=301]
# Now, rewrite any request to the wrong domain to use www.
RewriteCond %HTTP_HOST !^www\.
RewriteRule ^(.*)$ https://www.%HTTP_HOST%REQUEST_URI [L,R=301]

【问题讨论】:

【参考方案1】:

您可以使用OR 标志将两个重定向合二为一

RewriteCond %HTTPS off [OR]
RewriteCond %HTTP_HOST !^www\. [NC]
RewriteCond %HTTP_HOST ^(www\.)?(.*)$ [NC]
RewriteRule ^ https://www.%HTTP_HOST%REQUEST_URI [L,R=301]

【讨论】:

谢谢。这应该解决上述 PageSpeed 投诉,还是只是您建议的一般优化? @JohnRoberts 没有办法避免着陆页重定向,因为您想强制执行“www”和“https://”方案,但至少这只是 1 个重定向而不是 2 个。

以上是关于使用 SSL 避免登录页面重定向的主要内容,如果未能解决你的问题,请参考以下文章

当用户在 JSF 中注销后单击后退按钮时重定向到登录页面 [重复]

用户登录后重定向到要访问页面

登录后 Laravel 基本身份验证重定向到 HTTPS 路由

登录页面不会重定向到路由到登录页面

登录后重定向到登录页面

使用php重定向登录页面