Apache-仅允许通过URL打开位于特定文件夹中的文件

时间:2018-07-10 09:57:23

标签: apache

我正在使用以下文件夹结构:

    localhost
        server
            php
                docs
                classes
                errors
                ...
        client
            css
            javascript
            ...

用户应通过url打开的所有文档都位于server / php / docs目录中。

localhost/server/docs/index.php
localhost/server/docs/any_other_document_in_this_folder.php 

但是不可能这样:

localhost/server/classes/language.php   
localhost/server/errors/error404.php  
localhost/client/javascript/buttonhandler.js   

如何禁止用户以这种方式打开文件?

2 个答案:

答案 0 :(得分:0)

我现在使用5个重定向。也许可以不使用太多。

RedirectMatch "^/$" "/server/php/docs/index.php"
RedirectMatch "^\/(server)\/(php)\/((?!docs).*)$" "/server/php/docs/index.php"
RedirectMatch "^\/(client).*$" "/server/php/docs/index.php"
RedirectMatch "^\/(server|client)\/$" "/server/php/docs/index.php"
RedirectMatch "^\/(server)\/((?!php).*)$" "/server/php/docs/index.php"

答案 1 :(得分:0)

我发布的解决方案不起作用。目录中文档中使用的每个URL

server/php/docs

被重定向。还有类似的东西

<script type="text/javascript" src="../../../client/vendor/jquery-3.3.1.min.js"></script>

所以我的问题是:是否有可能(以及如何)使用户无法打开我一开始就发布的URL?我希望在这种情况下将用户重定向到

localhost/server/php/docs/index.php