【问题标题】:htaccess configuration not configured correctlyhtaccess 配置未正确配置
【发布时间】:2013-10-18 07:41:21
【问题描述】:

我有一个目录结构: httpdocs/documents/folder1 httpdocs/documents/folder2 httpdocs/documents/folder3

httpdocs/document 等我有一个 .ht 访问文件:

RewriteEngine on
RewriteRule ^(.*).(PDF)$ fileopen.php

在这个文件夹中我有 fileopen.php

然后,此文件根据 httpdocs 文件夹中的文件请求发送的 $_Get 请求打开文件夹 1 到文件夹 3 中的 pdf 文件。

我希望 htaccess 文件限制对所有文件夹的访问,但允许下载和打开 fileopen.php 请求的任何 pdf。这可能是因为我无法让它工作吗?

【问题讨论】:

    标签: apache .htaccess mod-rewrite configuration


    【解决方案1】:

    虽然可以使用mod_rewrite 规则阻止它。我想最简单和强大的解决方案是folder1, folder2, folder3 移到 DOCUMENT_ROOT 之外

    然后您可以在同一级别拥有httpdocs 和新的pdfdir。然后pfdir 可以包含folder1, folder2, folder3

    类似这样的:

    ---> httpdocs/
    ----------> .htaccess
    ----------> fileopen.php
    ----------> documents/
    ---> pdfdir/
    ----------> folder1/
    -------------------> foo.PDF
    ----------> folder2/
    -------------------> bar.PDF
    ----------> folder3/
    -------------------> baz.PDF
    

    这样pdfdir 及其内容无法从网络访问,而您的index.php 仍然可以使用fopen 等文件功能访问它们。

    【讨论】:

    • 我不想在 webroot 之外使用东西,但想尝试让 htaccess 工作 - 但是我放弃了将它放在 webroot 之外非常简单,就像你说的那样,谢谢
    • 不客气,将这些文件保存在外部比任何其他解决方案都更安全。
    【解决方案2】:

    试试这样的:

    RewriteEngine on
    RewriteRule ^(.*).(PDF)$ fileopen.php?file=$1 [L]
    RewriteRule ^(folder1|folder2|folder3) - [L,F]
    

    【讨论】:

    猜你喜欢
    • 2020-10-29
    • 1970-01-01
    • 2016-11-10
    • 2013-07-08
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 2022-06-18
    • 2020-04-04
    相关资源
    最近更新 更多