【发布时间】:2021-06-19 13:01:21
【问题描述】:
我在名为“members”的子文件夹中有一个迷你 PHP 应用程序,所以 domain.com/members
在这个迷你应用程序中,我在 .htaccess 文件中有以下内容来重定向 URL,例如 domain.com/members/categories/some-category 或 domain.com/members/login 等。
RewriteEngine On
RewriteBase /
# allow passthru to existing files/dirs
RewriteCond %{REQUEST_URI} !^/members/app [OR]
RewriteCond %{REQUEST_URI} ^/members/app/assets
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+) - [PT,L]
# everything else rewrite
RewriteRule ^(.*) members/index.php
这允许我的资产文件夹加载(CSS、JavaScript 和图像)并允许任何实际的文件 URL。但是,我们现在有一个文件夹,其中包含我们现在需要保护的文件。
因此,如果有人要访问 domain.com/members/files/filename.pdf 这将是服务器上的实际文件,我们需要将此 URL 重写到 members/index.php 文件中,因为我们需要检查权限在允许下载之前在文件上。
每当我尝试删除以下行时,一切都会中断:
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
【问题讨论】:
标签: apache .htaccess mod-rewrite