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文档中设置相对路径而不是绝对路径吗?(如果是的话...怎么样?)
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)