我的网站的所有页面都可以通过2个网址访问:一个是普通英文和一个是IDN。例如:覆盖http状态代码从404到200
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
代替使用404页面,您应该将所有流量重定向到“正常”页面,并在那里分析/处理请求。 – jeroen
@ jeroen但我想维护请求的网址。哦。另一种方法是从$ fakeUrl数组中创建所有文件,并使用包含在内的所有文件.. :( –
)您应该维护请求的url。查看url重写,这样您可以将所有流量导向不存在的页面导向到一个脚本并根据请求的URL处理请求 – jeroen