Dot-Htaccess

為什麼我找不到正確連結的頁面 (404)?

  • February 19, 2019

我有一個非常奇怪的問題:Google 告訴我,我的站點地圖中的某些連結無法訪問,並且出現 404 錯誤。但是,我試圖打開有問題的頁面,它工作正常。

該網站是使用 codeigniter 建構的,這裡是連結範例

現在,如果您嘗試打開上面的連結,它將正常工作。但如果你嘗試curl -I

curl -I http://widwebway.com/en/solutions
HTTP/1.1 404 未找到

我已經制定了一些路由並重寫規則以從 URL 中排除控制器名稱。換句話說,正確的連結是

curl -I http://widwebway.com/en/widwebway/view/solutions
HTTP/1.1 301 永久移動
日期:格林威治標準時間 2012 年 2 月 29 日星期三 18:05:01
伺服器:Apache/2.2.14 (Ubuntu)
位置:http://widwebway.com/en/solutions
變化:接受編碼
內容類型:文本/html;字元集=iso-8859-1

Apache錯誤日誌給出

文件不存在:/var/www/myweb/en,引用者:http://widwebway.com/en/solutions

.htaccess的是:

ErrorDocument 404 /index.php
<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteRule ^ar/widwebway/view/([a-z_]{1,50})[/]*$           /ar/$1 [L,R=301,NC]
 RewriteRule ^en/widwebway/view/([a-z_]{1,50})[/]*$           /en/$1 [L,R=301,NC]
 RewriteRule ^en/widwebway[/]*$           /en/home [L,R=301,NC]
 RewriteRule ^ar/widwebway[/]*$           /ar/home [L,R=301,NC]
</IfModule>

知道該頁面是如何出現的,但它在 curl 或 Google bot 上給出了 404 嗎?

這是我發現的:瀏覽器實際上也得到了 404http://widwebway.com/en/solutions

當我去:http://widwebway.com/en/widwebway/view/solutions 我得到:

Request URL:http://widwebway.com/en/widwebway/view/solutions
Request Method:GET
Status Code:301 Moved Permanently

此舉針對:http://widwebway.com/en/solutions 此文件/en/solutions實際上並不存在,但根據您的重寫規則,您是在告訴瀏覽器在/en/widwebway/view/solutions看到時顯示內容/en/solutions

來自 Chrome 網路檢查:

Request URL:http://widwebway.com/en/solutions
Request Method:GET
Status Code:404 Not Found

嘗試改用 PT 標誌。因為 /en/solutions 不是真正的文件。這應該讓您遠離Apache 文件中的 404 錯誤範例

Alias /icons /usr/local/apache/icons
RewriteRule /pics/(.+)\.jpg /icons/$1.gif [PT]

引用自:https://serverfault.com/questions/364986