能否用header()设置页面标题?解决跳转后搜索引擎标题显示异常
问题解答
首先明确:你用header("Title: Example");的方法完全没用,因为Title根本不是标准HTTP响应头,不管是搜索引擎还是浏览器,都不会读取这个头来设置页面标题。
为什么搜索引擎显示的是example.com?因为当搜索引擎抓取index.php时,它会收到3xx重定向响应,然后跳转到login.php。如果login.php里没有正确设置<title>标签,或者搜索引擎抓取时遇到了问题,就会默认用域名作为页面标题。
正确的解决方式:
- 直接在
login.php的HTML代码里添加标准的<title>标签,比如:
这是搜索引擎识别页面标题的唯一标准方式,所有主流搜索引擎都会优先读取这个标签的内容。<head> <title>Example - 用户登录</title> </head> - 如果你希望index.php本身在未登录状态下也有可被识别的标题(比如不需要跳转,而是显示登录入口),那不要用HTTP重定向,而是直接输出包含
<title>的HTML内容,比如:
这种方式下,搜索引擎能直接读取到index.php的标题,同时引导用户登录。<?php if(!isset($_SESSION['user'])){ ?> <!DOCTYPE html> <html> <head> <title>Example - 请登录</title> </head> <body> <p>请<a href="login.php">登录</a>访问本站</p> </body> </html> <?php exit; } // 已登录的逻辑 ?>
内容的提问来源于stack exchange,提问作者ja0
相关产品推荐
相关产品推荐

