2016-04-11 5 views
0

を合わせ、以下のようにIは、条件のセットをオフに基づいて、複数のルールを設定したい:htaccessを、%{TIME}と%{REMOTE_ADDR}は

2016年4月13日午前5時> 23時との間にのみ適用されます。

唯一のソースIPの両方が、再直接の2倍のページ

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ディレクティブはルール条件を定義します。 1つ以上 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] 
関連する問題