[英]Apache rewrite ignore images for processing permissions in PHP
我对REGEX不熟悉,并且在.htaccess中有以下代码
RewriteCond %{REQUEST_FILENAME} -s
RewriteRule ^uploads/(.*)$ download.php?file=$1 [QSA,L]
并且download.php文件的内容是
require_once ('users.php'); // user session
$allowedExtensions = array(
'.jpg',
'.png',
'.gif',
'.ico',
);
$extension = substr($_GET['file'], -4);
// Requested file is not in allowed extension and is not a logged in user
If (!in_array($extension, $allowedExtensions) && !is_user()) {
echo '<h1>Sorry, only members can download the files.</h1>';
exit();
}
它很棒,它的作用是:
但是我认为download.php脚本中的每次检查开销都太大,因此我试图直接从.htaccess重写规则中忽略这些图像。 看起来我必须更改以下代码
RewriteRule ^uploads/(.*)$ download.php?file=$1 [QSA,L]
在下载到download.php之前跳过图像,但不知道如何。
谢谢!
只需添加排除那些扩展的条件即可:
RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|bmp)$ [NC]
RewriteCond %{REQUEST_FILENAME} -s
RewriteRule ^uploads/(.*)$ download.php?file=$1 [QSA,L]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.