ホームページ > バックエンド開発 > PHPチュートリアル > Onethink がクロム カーネル アセンブリ プロセスでページをスキップし、セッションを失う理由の追跡

Onethink がクロム カーネル アセンブリ プロセスでページをスキップし、セッションを失う理由の追跡

WBOY
リリース: 2016-06-13 12:00:52
オリジナル
1070 人が閲覧しました

onethink在chrome内核安装流程跳页面丢失session原因跟踪
既有分享,也有疑问

第一次访问onethink,会跳转到安装页面,安装流程分了几步,是通过session('step')判断并控制当前进度的
用360的极速模式和谷歌浏览器(都是chrome内核),发现点下一步页面闪一下没有变化,而火狐和IE正常跳转,chrome下快速多击下一步按钮也正常
打开对应php文件,在安装流程的首行和末行分别打印session('step'),无论怎样刷新都输出01,而火狐第一次输出01,以后全是11,看来chrome在刷新页面后确实session被清空了
一开始认为问题在程序,在其他控制器下添加test操作测试,一网打尽...
偶然发现/Install/Index/index这个操作没有清空session
里面有一句session_destroy(),将它注释后其他页面session都正常了!
真的很奇怪,我访问/Install/install/step2跟你index有个毛线关系!框架总不会到处乱串吧!怒上fiddler!



火狐很老实,chrome原本访问step2却302到step1,又访问favicon.ico然后302到/install.php,这就运行了那句destroy
直接访问那个图标的url,果然
打开onethink自带.htaccess

<br /><IfModule mod_rewrite.c><br />  Options +FollowSymlinks<br />  RewriteEngine On<br /><br />  RewriteCond %{REQUEST_FILENAME} !-d<br />  RewriteCond %{REQUEST_FILENAME} !-f<br />  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]<br /></IfModule><br />
ログイン後にコピー


找到问题所在了,因为图标文件不存在被重写到index.php/favicon.ico,然后302到install.php
现在有2个疑问,隐藏index.php的rewrite语句如何写的更完美一些,判断uri有没有点(.)?另外一个问题是如何在html中告诉chrome不要下载icon呢?

------解决方案--------------------
没有看源文件,不能深究原因

但是并不同意你分析的结果
url 重写是服务端的行为,与客户端无关
如果是因为 /favicon.ico 不存在而导致 302 的话,那么为什么 火狐 和 IE 正常?难道 /favicon.ico 又出来了?
chrome 对文档类型声明的要求是比较严格的
发出 /favicon.ico 的请求,是否是相对路径解析错误呢?

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート