1

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

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

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

在此处输入图像描述

但这是它显示的

在此处输入图像描述

这是我完整的 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.shtml和位置index.php

删除此代码将解决问题。我怎样才能使它与路由一起工作。

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

2 回答 2

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 中启用了重写模块。

于 2014-02-02T08:34:37.627 回答
0

不要使用 引用整个 url,而是ErrorDocument 404 http://mysite.com/404.shtml将文档命名为相对于您的 Web 根目录。在这种情况下,/404.shtml

于 2013-08-28T04:09:35.137 回答