2011-02-16 112 views
0

我有這樣的.htaccess爲什麼404.html頁面未顯示

RewriteEngine On 

ErrorDocument 404 /404.html 

RewriteBase/

RewriteRule ^$ index\.html 

RewriteRule ^(.+)\.html$ index.php?page=$1 [L] 

RewriteRule ^robots.txt$ /generator.php?what=robots [L] 

RewriteRule ^sitemap.xml$ /generator.php?what=sitemap [L] 

如果我去的:site.com/blablalblabla 我得到404 NOT FOUND,但它好好嘗試顯示我404.html頁。爲什麼?

謝謝

+0

404消息過得好究竟,網絡服務器或瀏覽器的?據我瞭解你的規則,一個無效的請求將永遠去index.php,不是嗎? – 2011-02-16 14:06:02

回答

0

恕我直言,如果服務器觸發了404,404.html將成爲新的REQUEST_URI改造。新的uri也會覆蓋所有的重寫規則,並最終重定向到index.php?page = 404。

嘗試做添加此​​規則條件:

RewriteCond %{REQUEST_URI} !^\/404\.html$ 
RewriteRule ^(.+)\.html$ index.php?page=$1 [L]