2017-11-08 6 views
1

私は自分のサーバーの禁止令を作成しようとしています.IPからのすべてのリクエストを "禁止"というフォルダに書き換えたいと思います。そこから、いくつかのPHPファイルが禁止通知を処理します。スクリプトに問題はありませんが、.htaccessに書き換えルールを使用しようとすると、ブラウザはページが正しくリダイレ​​クトされていないことを警告します。ここに私のコードは.htaccessすべてのリクエストをIPに基づくサブフォルダに書き直し

# Configure The Rules 
Options +FollowSymLinks 
RewriteEngine On 

<If "%{REMOTE_ADDR} ='<insert banned IP here>'"> 
RewriteCond %{REQUEST_URI} !=/banned 
RewriteRule .* /banned 
</If> 

である私は他のソリューションを試してみましたが、それらのいずれかの500エラー、400エラー、または、そのような「example.com/*If/banned//var/www/html/*If/banned...

として不正なリクエストで満たされたURLの結果は、助けてください。

更新:

HTTP/1.1 301 Moved Permanently 
Date: Fri, 10 Nov 2017 19:22:27 GMT 
Server: Apache 
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload 
X-Frame-Options: SAMEORIGIN 
X-Content-Type-Options: nosniff 
Location: https://example.com/banned/ 
Content-Type: text/html; charset=iso-8859-1 

答えて

1

mod_dirモジュールを使用して、デフォルトでは、ディレクトリの後に追加される最後のスラッシュに注意して:curl -I: 'example.com'を使用するには、以下の結果が得られます。そのさらに悪い今

# Configure The Rules 
Options +FollowSymLinks 
RewriteEngine On 

<If "%{REMOTE_ADDR} ='<insert banned IP here>'"> 
RewriteCond %{REQUEST_URI} !^/banned/ [NC] 
RewriteRule^/banned/ [L] 
</If> 
+0

番号:

あなたが代わりにあなたのコードのこのルールを使用することができます。それは "禁止"ではなくサーバールートにリダイレクトしようとします。さらに、元のコードに末尾のスラッシュを追加すると、500のエラーが発生します。 – Spotlightsrule

+0

このルールにはリダイレクトがないため、このルールの外で発生しています。この.htaccessまたは '/ banned/.htaccess'に他のルールがありますか?はいの場合はここに表示してください。 – anubhava

+0

いいえ、1つのファイルにサンドボックス化されています。最終的にはPHPを介してサーバ自身によって書かれたルールを持つでしょう。私は最初に彼らが働いていることを確認するためにテストしたかった。ファイルはルートディレクトリにあり、サーバー全体で動作します。 – Spotlightsrule

関連する問題