Dot-Htaccess
為什麼我找不到正確連結的頁面 (404)?
我有一個非常奇怪的問題: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 嗎?
這是我發現的:瀏覽器實際上也得到了 404
http://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]