有没有办法如何配置Apache Web服务器为某些特定目录返回404(未找到)错误代码而不是403(禁止),我想禁止访问?
我找到了一些建议使用mod_rewrite的解决方案,例如
RewriteEngine On
RewriteRule ^.*$ /404 [L]
Run Code Online (Sandbox Code Playgroud)
由于发送404而不是403的目的是混淆目录结构,这个解决方案太具有启发性,因为它重定向到某个不同的位置,这使得最初访问的目录显然确实存在.
apache security mod-rewrite http-status-code-403 http-status-code-404
我为phpmyadmin设置了以下设置:
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
Order Deny,Allow
Allow from 127.0.0.1
Deny from all
Run Code Online (Sandbox Code Playgroud)
...
</Directory>
Run Code Online (Sandbox Code Playgroud)
基本上,我只允许从localhost访问phpmyadmin.如果来自外界的人试图去http:// mydomain/phpmyadmin,他们将获得403(禁止).这可能会让他们知道它在那里,但他们无法达到它.
问题:我宁愿让Apache在这个例子中返回404.那可能吗?
我需要将Apache 2.2服务器上的所有请求重定向到任何未找到404的目录.
例如:
/xyz或者/xyz/抛出403 - >重定向到404/xyz/sometext.txt 正常返回. 环顾四周,我发现了这篇文章:
RedirectMatch 404 ^/include(/?|/.*)$
/include 404 (instead of 403)
/include/ 404
/include/config.inc 404 (instead of 403)
Run Code Online (Sandbox Code Playgroud)
但是,最后一种情况也返回404.此外,它只影响/ include /目录,我正在寻找更多的任何禁止目录.到目前为止,我有:
RedirectMatch 404 ^[\/[\w+]]+\/$
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何实现这一目标?谢谢,