2016-04-11 39 views
0

我想設置多個規則基於關閉一組條件如下:.htaccess中,%{TIME}和{%} REMOTE_ADDR結合

2016年4月13日上午05點>晚上11點才適用。

僅適用,如果源IP在範圍內

如果同時申請,再直接2X頁面

RewriteCond %{TIME} >20160413050000 [NC] 
RewriteCond %{TIME} <20160414230000 [NC] 
RewriteCond %{REMOTE_ADDR} ^212\.74\.117\.10[3-9] [OR] 
RewriteCond %{REMOTE_ADDR} ^212\.74\.117\.11[0-1] [OR] 
RewriteCond %{REMOTE_ADDR} ^89\.197\.6\.236 
RewriteRule ^confirm.html$ /confirm-logos.html [R=307,L,QSA] 
RewriteRule ^blacklist.html$ /blacklist-logos.html [R=307,L,QSA] 

的時間規律的工作,在IP範圍內的作品,但是當我有這些多塊他們似乎有衝突。上述正確的即時通訊試圖實現?

回答

2

RewriteCond指令定義了一個規則條件。一個或多個 RewriteCond可以在一個RewriteRule指令之前。 以下規則爲 ,僅當URI的當前狀態匹配其 模式並且符合這些條件時才使用。 http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritecond

您可以使用:

RewriteCond %{TIME} >20160413050000 [NC] 
RewriteCond %{TIME} <20160414230000 [NC] 
RewriteCond %{REMOTE_ADDR} ^212\.74\.117\.10[3-9] [OR] 
RewriteCond %{REMOTE_ADDR} ^212\.74\.117\.11[0-1] [OR] 
RewriteCond %{REMOTE_ADDR} ^89\.197\.6\.236 
RewriteRule ^confirm.html$ /confirm-logos.html [R=307,L,QSA] 

RewriteCond %{TIME} >20160413050000 [NC] 
RewriteCond %{TIME} <20160414230000 [NC] 
RewriteCond %{REMOTE_ADDR} ^212\.74\.117\.10[3-9] [OR] 
RewriteCond %{REMOTE_ADDR} ^212\.74\.117\.11[0-1] [OR] 
RewriteCond %{REMOTE_ADDR} ^89\.197\.6\.236 
RewriteRule ^blacklist.html$ /blacklist-logos.html [R=307,L,QSA] 

或者,如果你有很多的規則,扭轉測試:

RewriteCond %{TIME} <20160413050000 [NC,OR] 
RewriteCond %{TIME} >20160414230000 [NC] 
RewriteCond %{REMOTE_ADDR} !^212\.74\.117\.10[3-9] 
RewriteCond %{REMOTE_ADDR} !^212\.74\.117\.11[0-1] 
RewriteCond %{REMOTE_ADDR} !^89\.197\.6\.236 
RewriteRule^- [L] 

RewriteRule ^confirm.html$ /confirm-logos.html [R=307,L,QSA] 
RewriteRule ^blacklist.html$ /blacklist-logos.html [R=307,L,QSA]