自定义错误403页PHP

时间:2012-01-02 17:21:43

标签: php apache .htaccess mod-rewrite http-status-code-403

我在一个目录中创建了一个.htaccess,我不希望直接访问这些文件。它可以工作并触发Apache服务器的默认403页面(Access forbidden!)。如何创建自定义403页面?谢谢!

3 个答案:

答案 0 :(得分:32)

在.htaccess文件中,您可以指定所需的文档作为默认的403错误文档

ErrorDocument 403 /dir/file.html

此处该目录相对于文档根目录。

答案 1 :(得分:10)

您可以执行以下操作:


#Rewrite URL's
RewriteEngine On
RewriteRule ^404/?$ errors/404.html [NC]

# Enable Error Documents
# (404,File Not Found) | (403,Forbidden) | (500,Internal Server Error)
ErrorDocument 404 /404
ErrorDocument 403 /404

这样做是打开RewriteEngine所以我们可以很好地重定向url,然后我们使用RewriteRule来定义/ 404 /或/ 404应该重定向到自定义404页面。然后我声明ErrorDocument 404和403应该重定向到404页面。我这样做是为了安全,因此,用户不知道文件是否存在或者他们是否只是无法访问。

答案 2 :(得分:0)

您还可以通过ErrorDocumnet在.htaccess文件中添加自定义内联错误消息,如下所示:

    ErrorDocument 403 '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>403 Forbidden</title></head><p>Sorry, access to this page is forbidden.</p></body></html>'