技术帝的平台展示,网站建设、网站推广、SEO技术、网站优化、电子商务推广、平面美工和软件测试等技术干货分享。

网站登录成功后部分页面无法打开却302跳转到登录页面

建站技术 abel-lan 23℃ 0评论

概述

网站后台登录失败302跳转到登录页面,刷新页面才能登陆成功。或登录成功后部分页面无法打开却302跳转到登录页面。这些问题可能是由于配置了PHP等动态页面缓存导致。

问题描述

登陆网站后台后,当长时间没有操作(也就是登录用户Session或Cookie过期),再点击后台操作页面,直接跳转到登录页面,到这里还都正常的。但登录后部分页面无法打开,还是跳转到登录界面。

另外还有网站后台登录后无法跳转到后台主页,依旧停留在登录界面,刷新页面后,才会跳转到后台主页。

解决过程

遇到该问题,打开浏览器开发者工具,查看Network,发现请网页直接302跳转到登录页面,网页Status Code为302 Found (from disk cache),网页直接302跳转了,根本没有请求服务器,推断可能是缓存导致的问题。

页面缓存302跳转导致无法登录
302跳转页面请求服务器响应详情

既然怀疑是缓存设置有问题,检查网站缓存设置发现有ExpiresDefault “access 1 day”,屏蔽该项设置,缓存还有,问题依旧。

继续检查,发现还有ExpiresByType text/html “access 1 month”,该项是根据文件Content-Type: text/html;来缓存,而后台php文件设置的类型正好为text/html,屏蔽该项,再次尝试问题解决。

扩展 — Apache缓存配置方法

  1. 打开Apache配置文件httpd.conf,找到mod_expires.so启用。
  2. 在.htaccess文件中配置网站缓存。其中ExpiresDefault “access 1 day”为默认缓存一天,除上边设置之外的所有文件。ExpiresByType text/html “access 1 month”是根据文件Content-Type: text/html;来缓存,如果扩展名为php,但内容类型定义为text/html,依旧会缓存
ExpiresActive On
AddType application/vnd.ms-fontobject .eot
AddType application/x-font-ttf .ttf
AddType application/x-font-opentype .otf
AddType application/x-font-woff .woff
AddType image/svg+xml .svg
ExpiresByType application/vnd.ms-fontobject "access 1 year"
ExpiresByType application/x-font-ttf "access 1 year"
ExpiresByType application/x-font-opentype "access 1 year"
ExpiresByType application/x-font-woff "access 1 year"
ExpiresByType image/svg+xml "access 1 month"
ExpiresByType image/webp "access 1 month"
ExpiresByType image/gif "access 1 month"
ExpiresByType image/jpg "access 1 month"
ExpiresByType image/jpeg "access 1 month"
ExpiresByType image/png "access 1 month"
ExpiresByType image/x-icon "access 1 month"
ExpiresByType text/css "access 1 month"
ExpiresByType text/javascript "access 1 month"
# ExpiresByType text/html "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType application/x-javascript "access 1 month"
ExpiresByType application/xhtml-xml "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
# ExpiresDefault "access 1 day"

经验教训

遇到问题,一步一步分析,首先要分辨清该情况的特征,再一步步逐步深入分析,切不可操之过急。我这次遇到问题,总以为是程序有问题,殊不知是缓存设置导致。

转载请注明:半亩方塘 » 网站登录成功后部分页面无法打开却302跳转到登录页面

赞 (17)支付宝扫码打赏微信扫码打赏分享
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址