2017-11-08 4 views
1

내 서버에 대해 금지 jail을 작성하려고하는데 IP에서 "banned"라는 폴더로 모든 요청을 다시 쓰려고합니다. 거기에서 여러 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

아니요. 하나의 파일로 샌드 박스되었습니다. 결국 PHP를 통해 서버 자체에서 작성한 규칙을 갖게됩니다. 나는 그들이 일하기 위해 먼저 테스트를하고 싶었다. 파일은 루트 디렉토리에 있으므로 서버 전체에서 작동합니다. – Spotlightsrule

관련 문제