我的網站的所有頁面都可以通過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