2

有没有更清洁的方法来做到这一点?我有兴趣通过将使用允许的 IP 地址定期运行的脚本来使用列表更新文件。

逻辑是:如果 {REMOTE_ADDR} = (1.2.3.4|2.3.4.5|3.4.5.6|192.168.0.0/24) 什么都不做,否则将它们 301 重定向到当前网站。

我尝试了以下测试:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>

    # END WordPress

    # Redirect all except allowed IP
    RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.101$
    ReWriteCond %{REMOTE_ADDR} !^234\.567\.891\.011$
    RewriteRule (.*) http://Currentwebsite.com/$1 [R=301,L] 
4

1 回答 1

2

您需要在您的 wordpress 规则之前进行重定向。因为 wordpress 将所有内容都路由到 index.php,所以请求在重定向之前会被破坏:

# Redirect all except allowed IP
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.101$
ReWriteCond %{REMOTE_ADDR} !^234\.567\.891\.011$
RewriteRule (.*) http://currentwebsite.com/$1 [R=301,L] 
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
于 2013-04-11T20:15:12.407 回答