我尝试在.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
答案 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中启用了重写模块。