使用.htaccess设置位于同一文件夹中的404错误文档

Spi*_*ked 5 php apache .htaccess

所以...我试图将路径设置为与.htaccess(位于WEBSITE"root")相同的目录中的错误文档,如下所示:

       ErrorDocument 404 404.php
Run Code Online (Sandbox Code Playgroud)

然而,它不是显示网页...它只是在屏幕上写404.php.我不能使用绝对路径,如:

       ErrorDocument 404 /404.php
Run Code Online (Sandbox Code Playgroud)

因为我不是为我做网站,我不知道网站将存储在文件夹的绝对路径...

我的问题是:我可以在.htaccess文档中设置相对路径而不是绝对路径吗?(如果是的话...怎么样?)

SáT*_*SáT 7

ErrorDocument指令的参数中的URL路径始终相对于DocumentRoot.

但是,您可以使用mod_rewrite模块解决此问题.

RewriteEngine on
#if requested resource isn't a file
# and isn't a directory
# then serve local error script 
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule .* 404.php [L] 
Run Code Online (Sandbox Code Playgroud)

确保404.php实际上发出404响应头!

我没有测试过,但这应该让你开始.另请注意,使用ErrorDocument指令总是比这更好,并且询问站点相对于DocumentRoot的驻留位置是明智的,因此您可以编写

ErrorDocument 404 /path/to/my/site/404.php
Run Code Online (Sandbox Code Playgroud)