0
我有一個網站,我需要顯示自定義錯誤頁面。我之前通過編輯.htaccess文件完成了它。.htaccess文件重定向到索引頁而不是自定義404頁
這是我在我的.htaccess文件:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain.*$ [NC]
RewriteRule \.(gif|jpg|jpeg)$ http://www.domain.com [L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
ErrorDocument 404 /error404.php
ErrorDocument 403 /error404.php
Options -Indexes
RewriteCond %{THE_REQUEST} \s/+page\.php\?url=([^\s&]+) [NC]
RewriteRule^/%1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /page.php?url=$1 [L,QSA]
頁面總是重定向到索引頁面,而不是顯示錯誤頁面。我究竟做錯了什麼?我嘗試刪除很多行,但沒有任何幫助。
你最後的規則是將所有非文件非目錄轉發給'/ page.php',因此'ErrorDocument 404/error404.php'被忽略。 – anubhava 2015-04-05 05:52:14
它看起來像你所有的請求路由到page.php。就Web服務器而言,每個請求都是有效的。如果你想顯示一個404頁面,你將不得不在應用程序級別執行它。 – 2015-04-05 05:52:17
這是可能的,如果任何擴展名如.php或.html文件名中存在,並且它不存在,那麼只寫入404頁 – 2015-04-05 05:57:07