내가이 일을하는 데 매우 환영합니다.
비슷한 문제가 있다면 Apache2 파일 000-default.conf (Linux 배포판에서이 파일의 위치를 찾으십시오)가 다음과 같이 표시되어야합니다. 이제
<VirtualHost *:80>
DBDriver mysql
DBDParams "host=localhost,user=root,pass=password,dbname=name"
RewriteMap whitelist "dbd:SELECT ip FROM users WHERE ip = %h LIMIT 1"
<Directory /var/www>
RewriteEngine On
RewriteCond "${whitelist:%{REMOTE_ADDR}|FOUND}" "FOUND"
RewriteRule "^" "" [F]
</Directory>
...
</VirtualHost>
여기에 약간에게
RewriteMap whitelist "dbd:SELECT ip FROM users WHERE ip = %h"
매개 변수 %의 시간을 설명하는 요청의 IP 주소를 의미합니다, 그래서 SQL 쿼리에서 여러 결과를 사용하지 않고, WHERE부터하는 행만 반환됩니다 조건이 충족되면 모든 IP 양에 대해 작동 할 수 있습니다.
RewriteCond "${whitelist:%{REMOTE_ADDR}|FOUND}" "FOUND"
: 가장 가능성이 SQL 쿼리와 함께 발견 된 유일한 IP 주소를 포함 할 화이트리스트에 REMOTE_ADDR을위한 % {REMOTE_ADDR} 검색, 그렇지 않으면 빈입니다.
RewriteRule "^" "" [F]
여기 [F]를 예를 들어 [R]를 리디렉션하기로 설정할 수 있습니다, 금지 된 것을 의미하지만 당신이 그것을 사용하는 방법에 대한 자세한 정보를 조회해야하고, "^"는이 규칙이 있음을 의미합니다 모든 URL에 적용됩니다.
빈 ""은 Apache2가 .txt 맵에서 예상하는 키 구분 기호 (?)이지만 SQL 쿼리를 사용하기 때문에 여기에 아무 것도 없습니다. 당신이 (데비안 8 예를 들어) 패키지를 설치 MySQL과
sudo apt-get install libaprutil1-dbd-mysql
또는 그렇지 않으면 아파치가 설정 한 후 시작을 시작되지 않습니다 당신이 한 mod_dbd 사용하려면
DBDriver는 MySQL로
또한 mod_rewrite를을 활성화하고
a2enmod rewrite
a2enmod dbd
이 누군가에 대한 도움이되었습니다 희망과 아파치에 mod_dbd해야
,536을 :)