2012-12-26 145 views
1

只有特定的IP和引荐我有Apache的htaccess的规则集,以允许访问其完全适用于处于维护模式下工作的某个IP地址。然而,这也阻止某些引荐像wordpress.com或来自google.com访问该网站。当前的规则是:允许htaccess的

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123 

RewriteCond %{HTTP_REFERER} wordpress\.com [NC, OR] 
RewriteCond %{HTTP_REFERER} google\.com [NC] 
RewriteCond %{HTTP_REFERER} ^(.*)$ 
RewriteRule .* /maintenance.html [R=302] 

RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC] 
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC] 
RewriteRule .* /maintenance.html [R=302,L] 

以上规则集的作品,但有毛刺它并不完美。某种程度上,网站可以从任何知识产权中获取,而推荐人无可置疑。我需要一个允许从特定IP和某些推荐人访问网站的规则集。

回答

1

我看来像行

RewriteCond %{HTTP_REFERER} ^(.*)$ 

匹配任何东西,使得其余的条件静音。那里有什么?

而且,当你在做什么可能是罚款,你的目的,你要知道,这是不是很难创建一个假的引荐[原文]头的请求。

另外,如果你的目标是让这些特定的参照网址和凹凸其余“maintenance.html”,那么我想你想的匹配条件否定的参照网址。但我可能误解你的意图。

+0

删除这条线,但仍然重定向到维护页面忽略IP规则 – anithegregorian

+0

那么,你的第二组条件/规则也将赶上一切,是不是和图像或“offline.html”页面。我相信“offline.html”,其实应该是“maintenance.html”和第一重写规则应该走开,让所有的电导率引至一个规则,对不对? –