将 http 状态代码从 404 改写为 200
Override http status code from 404 to 200
我网站的所有页面都可以通过 2 urls 访问:一个是普通英语,一个是 IDN。示例:
www.example.com/examplepage
пример.рф/примерстраницы
在服务器上我只有英文文件,所以我决定在 php 中创建 2 个数组:
$realUrl=array('examplepage');
$fakeUrl=array('примерстраницы');
并签入 404.php 文件:如果用户从 $fakeUrl 数组请求 url - 我只是包含一个来自 $realUrl 的页面并将 http 状态代码更改为 200(没有重定向,所以他看到他在地址栏中的 IDN 请求)。这是一个好方法吗?一切正常,但我无法更改此类页面的响应代码,我都试过了:
header("HTTP/1.1 200 OK");
http_response_code(200);
但响应代码仍然是 404。
你不能那样做,你需要重定向到真正的 URL 或要求你的页面,如果它们在同一个
服务器。您还可以使用 curl 来确定该页面是否存在但不在 404
我发现了一个使用 htacess 发送我自己的 404 页面的奇怪功能,也许 "search" 可以朝这个方向去做:
如果你用这个创建一个 htacess:
ErrorDocument 404 /my_page.php
浏览器将通过 404 header 接收 my_page.php 的内容。而且您似乎无法更改响应代码。
但是如果你在htacess中写:
ErrorDocument 404 http://www.mys_site.com/my_page.php
所以绝对 URL,浏览器将收到 my_page.php 和 200 header。我用它来愚弄 "hacker robots",他们试图访问页面并查看 header 以查看他们是否找到了他们正在寻找的页面。
也许在您的 htaccess 中使用它来检测被调用的页面,可以帮助您。
这个有效How can I replace Apache HTTP code 404 to 200
<?php header("Status: 200 OK"); ?>
此代码必须放在 .php 文件顶部的第一行代码中。搜索引擎、爬虫、浏览器和任何访问该站点的人都会将 errordocument 404 页面视为 header 200。
Header 200 表示该页面存在。 Google 将对 header 状态为 200 的网站进行抓取和索引。
我网站的所有页面都可以通过 2 urls 访问:一个是普通英语,一个是 IDN。示例:
www.example.com/examplepage
пример.рф/примерстраницы
在服务器上我只有英文文件,所以我决定在 php 中创建 2 个数组:
$realUrl=array('examplepage');
$fakeUrl=array('примерстраницы');
并签入 404.php 文件:如果用户从 $fakeUrl 数组请求 url - 我只是包含一个来自 $realUrl 的页面并将 http 状态代码更改为 200(没有重定向,所以他看到他在地址栏中的 IDN 请求)。这是一个好方法吗?一切正常,但我无法更改此类页面的响应代码,我都试过了:
header("HTTP/1.1 200 OK");
http_response_code(200);
但响应代码仍然是 404。
你不能那样做,你需要重定向到真正的 URL 或要求你的页面,如果它们在同一个 服务器。您还可以使用 curl 来确定该页面是否存在但不在 404
我发现了一个使用 htacess 发送我自己的 404 页面的奇怪功能,也许 "search" 可以朝这个方向去做: 如果你用这个创建一个 htacess:
ErrorDocument 404 /my_page.php
浏览器将通过 404 header 接收 my_page.php 的内容。而且您似乎无法更改响应代码。
但是如果你在htacess中写:
ErrorDocument 404 http://www.mys_site.com/my_page.php
所以绝对 URL,浏览器将收到 my_page.php 和 200 header。我用它来愚弄 "hacker robots",他们试图访问页面并查看 header 以查看他们是否找到了他们正在寻找的页面。
也许在您的 htaccess 中使用它来检测被调用的页面,可以帮助您。
这个有效How can I replace Apache HTTP code 404 to 200
<?php header("Status: 200 OK"); ?>
此代码必须放在 .php 文件顶部的第一行代码中。搜索引擎、爬虫、浏览器和任何访问该站点的人都会将 errordocument 404 页面视为 header 200。
Header 200 表示该页面存在。 Google 将对 header 状态为 200 的网站进行抓取和索引。