Htaccess
如何在重寫條件下替換 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
文件中?
我找到了解決方案。如果有人需要,它是:
sed -i "s/RewriteCond %{REMOTE_ADDR} \!\^[0-9,\.]*/RewriteCond %{REMOTE_ADDR} \!\^$(w -h | awk '{print $3}' | head -1)/g" .htaccess
Apache 是無狀態的,這對於 .htaccess 文件來說更是如此。這意味著您可以即時添加任何指令。您可以創建一個 cron 腳本並讓它每分鐘執行一次,讓您的腳本執行您的 ‘w -h | awk ‘{列印 $3}’ | head -1’ 並以正確的指令語法 ‘RewriteCond %{REMOTE_ADDR} !^xxx.xxx.xxx.’ 將相關資訊插入到 .htaccess 文件中。
由於 apache 是無狀態的,它會為每個對 .htaccess 中或之下的任何目錄的請求讀取該 .htaccess 文件,因此您的指令將立即生效,而無需重新啟動 apache。