2014-09-24 162 views
0

我为我们公司使用Xfilesharing,我需要阻止我们的内部IP范围192.168.230.1-225访问主上传页面并允许下载到每个IP。 使用以下规则将阻止主页面,但也会阻止其他页面。但是使用规则来允许下载会破坏重写规则。htaccess不允许根目录但允许其他网址

RewriteEngine on 

RewriteRule ^$     /cgi-bin/index.cgi [L] 
RewriteCond %{REMOTE_ADDR} ^192\.168\.230\.25[0-5]|2[0-4]\d|1?\d\d?$ 
RewriteRule ^([0-9A-Z]{12})/([^/]+)/?$ /cgi-bin/index.cgi?act=download1&id=$1&fname=$2 [L,QSA] 
RewriteRule ^.*$ /error [R=302,L] 
RewriteRule ^del\-([0-9A-Z]{12})\-([0-9A-Z]+)/.+$ /cgi-bin/index.cgi?del=$1-$2 [L] 
RewriteRule ^admin$     /?act=admin [R] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([a-z0-9\-\_]+).html$   /cgi-bin/index.cgi?act=page&tmpl=$1 [L] 

字面上的URL是http://www.example.com/MG4YBAOW18QH/3.png和规则:^([0-9A-Z]{12})/([^\/]+)$ /cgi-bin/index.cgi?act=download1&id=$1&fname=$2 [L]

+0

什么是你的上传页面的网址是什么? – anubhava 2014-09-24 07:38:30

+0

此规则与下载链接匹配:RewriteRule ^([0-9A-Z] {12})/([^ \ /] +)$ /cgi-bin/index.cgi?act=download1&id=$1&fname=$2 [ L]和文字是site.com/MG4YBAOW18QH/3.png – calculataur 2014-09-24 07:45:36

回答

0

让你的下载规则是这样的:

RewriteCond %{REMOTE_ADDR} ^192\.168\.230\.\d+ 
RewriteRule ^([0-9A-Z]{12})/([^/]+)/?$ - [F,NC] 

RewriteRule ^([0-9A-Z]{12})/([^/]+)/?$ /cgi-bin/index.cgi?act=download1&id=$1&fname=$2 [L,QSA,NC] 
+0

使用你的重写我仍然可以访问这两个页面,并给出了图像和CSS的重定向循环。我更新了我的主要重写与你 – calculataur 2014-09-24 08:16:20

+0

你仍然可以访问'http: // www.example.com/MG4YBAOW18QH/3.png'来自'192.168.230.25' IP?检查你从Apache日志获得的IP是什么? – anubhava 2014-09-24 08:23:04

+0

我的IP地址是192.168.230.1 – calculataur 2014-09-24 08:31:05