尝试制作主题的时候遇到一个奇怪的问题,自定义主题前台死活注销不掉,以为是本地服务器软件配置问题(本地服务器表示锅我不背),结果换其他主题一换一个正常。
仔细检查了一下代码,发现是自己复制粘贴代码的时候在退出登录的按钮上也添加了noopener noreferrer nofollow
:
<li class="primary-user-item"><a rel="noopener noreferrer nofollow" href="<?php $this->options->adminUrl();?>">进入后台</a></li>
<li class="primary-user-item"><a rel="noopener noreferrer nofollow" href="<?php $this->options->logoutUrl();?>">退出登录</a></li>
修改为如下代码之后,退出功能就正常了:
<li class="primary-user-item"><a href="<?php $this->options->logoutUrl();?>">退出登录</a></li>
问题原因
noopener/noreferrer 主要用于安全目的,防止新打开的窗口通过 window.opener 访问原始页面,nofollow 告诉搜索引擎不要追踪此链接,这些属性可能会:
阻止必要的会话信息传递
中断与服务器的正常认证流程
改变请求的发送方式