根目录中的自定义403错误页面

时间:2013-11-17 01:34:40

标签: apache .htaccess fedora http-status-code-403 httpforbiddenhandler

我使用htaccess技术阻止了一些IP地址,这适用于我的所有页面,除了显示Fedora Core Test Page的站点/文档根目录。

我知道当找不到根目录中的文档时会显示测试页面,因此我创建了多个文档并设置了目录索引,其中index.php是我的常规文档根文件。

N.B。我无法访问/etc/httpd/conf.d/welcome.conf

以下是相关的htaccess代码:

DirectoryIndex index.php index.html 403.php

ErrorDocument 403 /403.php

order allow,deny
deny from 5.39.218
deny from 146.0.74
deny from 5.39.219
deny from 176.102.38
allow from all

<FilesMatch "(403.php|hero.jpg|index.html)$">
 order allow,deny
 allow from all
</FilesMatch>

有没有办法为网站根目录显示我的自定义403页面?

我们非常感谢任何建议。

3 个答案:

答案 0 :(得分:2)

试试这段代码:

DirectoryIndex index.php index.html 403.php

ErrorDocument 403 /403.php

order allow,deny
allow from all
deny from 5.39.218
deny from 146.0.74
deny from 5.39.219
deny from 176.102.38
Satisfy    any

<FilesMatch "^(|403\.php|hero\.jpg)$">
 order allow,deny
 allow from all
</FilesMatch>

答案 1 :(得分:0)

寻找完整解决方案的人们:

  • Must Ass FilesMatch“^。* $”行到ip来阻止
  • 将^添加到FilesMatch的前面以获取允许的文件

完成代码:

DirectoryIndex index.php index.html 403.php

ErrorDocument 403 /403.php

<FilesMatch "^.*$">
  order allow,deny
  allow from all
  deny from 5.39.218
  deny from 146.0.74
  deny from 5.39.219
  deny from 176.102.38
</FilesMatch>

<FilesMatch "^(|403\.php|hero\.jpg)$">
  order allow,deny
  allow from all
</FilesMatch>

答案 2 :(得分:0)

尝试禁用默认的Apache CentOS欢迎页面:

#
# This configuration file enables the default "Welcome"
# page if there is no default index page present for
# the root URL.  To disable the Welcome page, comment
# out all the lines below.
#
<LocationMatch "^/+$">
    Options -Indexes
    ErrorDocument 403 /error/noindex.html
</LocationMatch>

编辑文件/etc/httpd/conf.d/welcome.conf并评论所有内容。只需删除welcome.conf文件(或将其重命名为.conf.disabled)也应该可以解决问题。

然后,重新加载apache配置(service httpd restart),事情应该按预期工作。