【发布时间】:2012-01-31 23:27:42
【问题描述】:
我在不希望直接访问文件的目录中创建了一个 .htaccess。它工作并触发 Apache 服务器的默认 403 页面(禁止访问!)。如何创建自定义 403 页面?谢谢!
【问题讨论】:
标签: php apache .htaccess mod-rewrite http-status-code-403
我在不希望直接访问文件的目录中创建了一个 .htaccess。它工作并触发 Apache 服务器的默认 403 页面(禁止访问!)。如何创建自定义 403 页面?谢谢!
【问题讨论】:
标签: php apache .htaccess mod-rewrite http-status-code-403
在您的 .htaccess 文件中,您可以指定您想要的文档作为默认的 403 错误文档。
ErrorDocument 403 /dir/file.html
这里的目录是相对于文档根目录的。
【讨论】:
您可以执行以下操作:
#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 页面。我这样做是为了安全,所以用户不知道文件是否存在或者他们是否无权访问。
【讨论】:
您还可以通过 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>'
【讨论】:
没有一个对我有用。我必须编辑文件/etc/apache2/conf-enabled/localized-error-pages.conf 并添加以下内容
ErrorDocument 403 "403, Ok!?"
【讨论】: