8

如何在 .htaccess 文件中为文档根目录中的特定目录执行此操作?:

  1. 拒绝对任何东西的所有访问(包括 .htaccess 太)
  2. 返回 404,而不是 403 错误
  3. 人类或机器人不应访问或检测到任何文件或子目录
  4. 只允许本地主机的 php 访问

好像会很简单。这有效,但抛出 403 而不是 404:

deny from all
4

3 回答 3

3

为什么不创建自定义错误页面?

deny from all
ErrorDocument 403 /error/404.html

如果某人无权查看该页面,服务器将始终希望抛出 403 错误,而这正是您想要做的。但是,您可以更改错误 403 的 ErrorDocument 以显示一个表明它是 404 错误的 HTML页面

我的示例在根目录中有一个名为的文件夹,其中有一个名为error.html 的 html 文件404.html

于 2013-05-29T21:45:07.203 回答
1

你有没有尝试过这样的事情?当有人试图查看 DIRECTORY 中的任何内容时,这将强制出现 403 Forbidden 错误。PHP 脚本仍然可以访问目录中的所有内容。显然将 DIRECTORY 替换为您的首选目录。

RewriteRule ^DIRECTORY - [F]

于 2012-06-14T03:41:16.213 回答
1

我不喜欢发送一些说它是 404 错误的 html 页面,而实际上它只是一个 html 页面,也可能位于 Iamafake404error.html

你可以试试这个:

Order Deny,Allow
Deny from all
Allow from 1.2.3.4


ErrorDocument 403 /throwaREAL404error.html
ErrorDocument 404 /throwaREAL404error.html
ErrorDocument 500 /throwaREAL404error.html

### never deliver .git folders, .gitIgnore
RewriteRule ^(.*/)?\throwaREAL404error.html+ - [R=404,L]

# 2nd line of defense (if no mod_rewrite)
RedirectMatch 404 ^(.*/)?\throwaREAL404error+

https://serverfault.com/a/510951/194845

于 2014-02-20T08:50:02.273 回答