다시 쓰기 조건에서 IP 필드를 바꾸는 방법

다시 쓰기 조건에서 IP 필드를 바꾸는 방법

.htaccess해당 파일에는 특정 파일 및 폴더를 차단하기 위한 다음 발췌문이 포함되어 있습니다.

RewriteCond %{REQUEST_URI} wp-login.php|wp-admin
RewriteCond %{REMOTE_ADDR} !^123.456.789.
RewriteRule . - [R=404,L]

123.456.789필드를 다음에서 검색할 수 있는 현재 IP로 바꿔야 합니다 .

w -h | awk '{print $3}' | head -1

.htaccess파일의 IP 필드를 현재 스크랩된 IP로 바꾸고 파일 w에 다시 저장하려면 어떻게 해야 합니까 ?.htaccess

답변1

Apache는 특히 .htaccess 파일의 경우 무상태입니다. 즉, 어떤 지침이라도 즉시 추가할 수 있습니다. cron 스크립트를 생성하고 매분 실행되도록 할 수 있으며, 스크립트에서 올바른 명령 구문 "RewriteCond %{REMOTE_ADDR} !^xxx를 사용하여 'w -h | awk '{print $3}' | head -1'을 실행하도록 할 수 있습니다. xxx.xxx"는 .htaccess 파일에 관련 정보를 삽입합니다.

Apache는 상태 비저장이므로 .htaccess 내부 또는 하위 디렉터리에 대한 모든 요청에 ​​대해 .htaccess 파일을 읽습니다. 따라서 명령은 Apache를 다시 시작하지 않고도 즉시 적용됩니다.

답변2

해결책을 찾았습니다. 필요한 사람이 있다면 다음과 같습니다.

sed -i "s/RewriteCond %{REMOTE_ADDR} \!\^[0-9,\.]*/RewriteCond %{REMOTE_ADDR} \!\^$(w -h | awk '{print $3}' | head -1)/g" .htaccess

관련 정보