Php 将不存在的url重定向到错误页面

Php 将不存在的url重定向到错误页面,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我想将所有不可用的链接重定向到error.php页面 这是我想要的 如果有人输入了一个不存在的链接,那么我想将他们重定向到我的错误页面,而不是webhost的404错误页面 www.example.com/wrong_page.php 应该重定向到 www.example.com/error.php 您可以将此指令添加到.htaccess文件中: ErrorDocument 404 /error.php 有许多类型的错误页面(只需谷歌搜索)。您可以使用.htaccess来处理它们

我想将所有不可用的链接重定向到error.php页面

这是我想要的

如果有人输入了一个不存在的链接,那么我想将他们重定向到我的错误页面,而不是webhost的404错误页面

 www.example.com/wrong_page.php 
应该重定向到

 www.example.com/error.php 

您可以将此指令添加到
.htaccess
文件中:

ErrorDocument 404 /error.php 

有许多类型的错误页面(只需谷歌搜索)。您可以使用.htaccess来处理它们。比如说

ErrorDocument 500 /errordocs/500.html

ErrorDocument 404 /errordocs/404.html

ErrorDocument 401 /errordocs/401.html

ErrorDocument 403 /errordocs/403.html

您需要在
.htaccess
文件中进行设置。您可以使用或只需将此行添加到新的.htaccess文件:

//Custom 404 errors
ErrorDocument 404 error.php
除了错误页面之外,您可能还希望禁用目录列表或更改目录的默认页面。尽管如此,还是使用了.htaccess文件。如果您是新手,只需使用我提到的链接。

这是我的.htaccess

<Files .htaccess>
order allow,deny
deny from all
</Files>

IndexIgnore */*

ErrorDocument 400 /err_400.php
ErrorDocument 401 /err_401.php
ErrorDocument 403 /err_403.php
ErrorDocument 404 /err_404.php
ErrorDocument 500 /err_500.php

命令允许,拒绝
全盘否定
IndexIgnore*/*
ErrorDocument 400/err_400.php
ErrorDocument 401/err_401.php
ErrorDocument 403/err_403.php
ErrorDocument 404/err_404.php
ErrorDocument 500/err_500.php

您有两个选项可将错误的
请求URI重定向到错误页面

 www.example.com/wrong_page.php 
1)内部重定向

您的web服务器将在内部将错误请求重定向到错误页面

在您的
WebRoot/.htaccess

 RewriteEngine on 
 RewriteBase / 
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ /error.php [NC,L]
 RewriteEngine on 
 RewriteBase / 
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ http://example.com/error.php [R,NC,L]
2)外部重定向

您的web服务器将从外部将错误请求重定向到错误页面

或者在您的
WebRoot/.htaccess

 RewriteEngine on 
 RewriteBase / 
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ /error.php [NC,L]
 RewriteEngine on 
 RewriteBase / 
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ http://example.com/error.php [R,NC,L]
重写条件检查请求的文件名是否不是目录或文件,然后重写规则将其重定向到错误页面