重写请求后相对路径不再起作用

问题描述 投票:0回答:1

我是网络开发新手,我试图了解如何保护某些文件不被用户直接访问。 我想将所有请求重定向到“index.php”,并根据特定条件(例如用户的凭据)授予对包含敏感信息(例如图像)的文件的访问权限。 为此,我创建了一个“.htaccess”文件。 “index.php”、“.htaccess”和“image.png”的路径是“C:\xampp\htdocs\project”。 我还将 httpd.conf 修改为“AllowOverride All”,并且重定向工作正常。 问题是该文件的相对路径不起作用。

“.htaccess”:

RewriteEngine On
RewriteBase /project/
RewriteRule ^(.*)$ index.php

“index.php”:

<body>
    <?php
        $routes = ["/project/image.png"];
        $user_logged_in = true;

        if(in_array($_SERVER['REQUEST_URI'], $routes) && $user_logged_in)
            echo "<img src=\"image.png\">";
    ?>
</body>

图像未加载(图像图标损坏)。我怎样才能做到这一点? 我在哪里可以找到有关此主题的适合初学者的文档?

我用很多方法修改了图像路径,但似乎没有任何效果。

php apache .htaccess path request
1个回答
0
投票

保护敏感文件免遭直接 HTTP 访问的技术是将它们放在根目录之上,并根据某些条件(例如用户的凭据)使用 PHP 访问它们,正如 C3roe 所解释的那样。谢谢你,C3roe!

© www.soinside.com 2019 - 2024. All rights reserved.