如何在 codeigniter 中使用 .htaccess 限制图像文件夹

How can i restrict the image Folder using .htaccess in codeigniter

我有一个包含图像文件夹的 codeigniter 项目,我想让它无法直接访问 url 假设有人输入 url

http://localhost/project/images/Pricelistupdated.pdf

然后它将在浏览器选项卡中直接打开而无需登录,所以我想将其禁用。当用户登录并单击下载 link 时,只会下载该时间文件并在新选项卡中打开。当有人在浏览器中直接输入 url 时它无法打开我使用以下

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?projects/project/ [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?projects/project/.*$ [NC] 
RewriteRule \.(pdf|PDF|jpg|png|gif|PNG)$ - [F]

但此代码还禁用了下载和在新标签页中打开的功能

你应该遵循这个link How to restrict access to files in a folder in codeigniter

如post所述,您需要拒绝所有对文件的直接访问,并在用户使用身份验证登录时通过控制器读取文件。

很简单!你可以试试这个! 只需使用以下代码创建一个 htaccess 文件:-

Options -Indexes

将此文件保存到您的图像文件夹中。然后检查..

如果您创建一个额外的文件夹,默认情况下无法提供 codeigniter 框架。

第一步

  • 在项目根目录中创建一个 .htaccess 文件。

第 2 步

将此代码保存在下面提供的 htaccess 文件中:

<IfModule mod_rewrite.c>
Options -Indexes
RewriteEngine on
RewriteBase /Project_name/
RewriteCond  !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/ [L,QSA]
</IfModule>

第三步

  • 如果 root 中已经存在 htaccess 文件。只需在旧的 .htaccess 文件中添加代码行。按照 Step-2 示例

    选项-索引

现在检查一下。