我正在尝试将我的网站网址切换为“SEO 友好”,我通过 php 发现了一个简单的想法: 因此,通过 .htaccess 将每个未找到的页面移动到 index.php:
ErrorDocument 404 /index.php
从那里我在index.php中:
$url = explode('/', urldecode($_SERVER['REQUEST_URI']));
if (empty($url[1])){
include "home.php";
die();
} else if($url[1] == "p"){
include "s/xp.php";
die();
} else if ( $url[1] == "d"){
include "s/xd.php";
die();
} else if ( $url[1] == "c"){
include "s/xc.php";
die();
} else {
http_response_code(404);
include('s/error.php');
die();
}
但是,服务器发现这是404,所以我找到了一个解决方案来添加:
header("HTTP/1.1 200 OK");
现在页面打开一切正常,没有任何问题!但是当涉及到索引时! google发现页面都是404!即使它们工作得很好!
有没有办法让服务器相信自己没有错误?或者更好的解决方案?
最佳答案
ErrorDocument 404 /index.php
这确实是一种实现前端 Controller 模式的hacky方式。 Apache 将设置一个 404 HTTP 响应代码,然后您必须在脚本中覆盖该代码。
Apache 为此提供了一个指令:
FallbackResource /index.php
行为类似...任何通常返回 404 的请求都会发送到 /index.php
,除非设置了 200 OK 响应代码。然后,您必须在代码中设置 404 响应(看起来您正在这样做)。
引用:
关于php - 尝试创建搜索引擎友好 URL 时出现索引 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66821596/