我的应用程序在位于 cloudflare 后面的 ubuntu 服务器上运行。example.com/admin
如果访问者不是来自我的 IP,我想重定向请求以显示 404123.1.2.3
我试过这个 我也试过使用
RewriteCond %{HTTP:CF-CONNECTING-IP} !^(123\.1\.2\.3)$
RewriteRule ^admin.php - [R=404,L]
但他们都没有工作。
我已经安装了 mod_cloudflare
我的应用程序在位于 cloudflare 后面的 ubuntu 服务器上运行。example.com/admin
如果访问者不是来自我的 IP,我想重定向请求以显示 404123.1.2.3
我试过这个 我也试过使用
RewriteCond %{HTTP:CF-CONNECTING-IP} !^(123\.1\.2\.3)$
RewriteRule ^admin.php - [R=404,L]
但他们都没有工作。
我已经安装了 mod_cloudflare
如果您正在使用mod_cloudflare
,它是否有效?下面的 PHP 是否显示您的实际 IP 地址?
echo $_SERVER['REMOTE_ADDR'];
mod_cloudflare 说明假设mod_cloudflare
工作正常,如果你有一个管理目录,你应该能够做这样的事情。
.htaccess在管理目录中...
order deny,allow
deny from all
allow from 123.1.2.3
或者,如果它只是您需要保护的文件,假设您已mod_rewrite
启用,则以下内容应该有效(来自这个问题)。
.htaccess在您网站的根目录中...
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !=123.1.2.3
RewriteRule admin.php$ /404.php [R=301,L]
mod_rewrite
在ubuntu中启用...
sudo a2enmod rewrite
尝试:RewriteCond %{CF-CONNECTING-IP} !123.1.2.3
试试这个:
RewriteEngine On
RewriteCond %{HTTP:CF-CONNECTING-IP} !=123.1.2.3
RewriteRule (.*) /404 [R]
尝试改用这个:
RewriteCond %{REMOTE_ADDR} !=123.1.2.3
RewriteRule admin.php$ /404.php [R=302,L]
我已将其设置为R=302
临时重定向,我假设您不希望永久这样做,但如果您这样做,请将其更改为R=301
.
确保在测试之前清除缓存。