ErrorDocument 404不使用路由

时间:2013-08-28 04:01:57

标签: .htaccess http-status-code-404 custom-error-pages

我尝试在.htacces上使用此代码在我的网页上拥有自己的自定义404。

ErrorDocument 404 http://mysite.com/404.shtml

当我访问网站上不存在的页面时。它必须显示类似的东西

enter image description here

但这是它显示的那个

enter image description here

这是我完整的htaccess

<files .htaccess>
    order allow,deny
    deny from all
</files>
php_value memory_limit 170M

RewriteEngine on


Options +FollowSymlinks
Options -Indexes



RewriteCond %{REQUEST_URI} (.+)$  [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
AddDefaultCharset utf-8
RewriteRule (.*) index.php

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www.mysite.com.*$ [NC]
RewriteRule ^(.*)$ http://mysite.com%{REQUEST_URI} [L,R=301]  

ErrorDocument 404 http://mysite.com/404.shtml

我的htaccess的位置与网站的404.shtmlindex.php一起位于

删除此代码可以解决问题。如何使其适用于路由。

   RewriteCond %{REQUEST_URI} (.+)$  [NC]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    AddDefaultCharset utf-8
    RewriteRule (.*) index.php

2 个答案:

答案 0 :(得分:0)

不要使用ErrorDocument 404 http://mysite.com/404.shtml引用整个网址,而是将文档命名为与您的网络根目录相关联。在这种情况下,/404.shtml

答案 1 :(得分:0)

在.htaccess中使用这些代码来捕获404错误页面。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /404.html [L]
</IfModule>

现在您的所有404请求都将转到/404.html。您还可以使用/404.php更动态地编码。还要确保在apache中启用了重写模块。