0

我的应用程序在位于 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

4

4 回答 4

0

如果您正在使用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
于 2018-11-03T06:53:06.050 回答
0

尝试:RewriteCond %{CF-CONNECTING-IP} !123.1.2.3

于 2018-07-14T01:31:59.973 回答
0

试试这个:

RewriteEngine On
RewriteCond %{HTTP:CF-CONNECTING-IP} !=123.1.2.3
RewriteRule (.*) /404 [R]
于 2019-05-15T10:28:25.027 回答
0

尝试改用这个:

RewriteCond %{REMOTE_ADDR} !=123.1.2.3
RewriteRule admin.php$ /404.php [R=302,L]

我已将其设置为R=302临时重定向,我假设您不希望永久这样做,但如果您这样做,请将其更改为R=301.

确保在测试之前清除缓存。

于 2018-07-11T15:56:20.670 回答