htaccess-从文件中获取IP地址



我有一个PHP脚本,它收集写入文件的某个域的当前DHCP地址。

我需要将该文件中的IP地址(或直接从.htaccess文件中收集(读取到我的.htaccess的一部分中,以便仅允许该特定IP地址登录到我的帐户。

我以前用过:

RewriteCond %{REMOTE_HOST} ^example.com$ [NC]
RewriteCond %{REQUEST_URI} ^/wp-login.php$
RewriteRule ^(.*)$ blackhole.html [L,R]

我现在托管在LiteSpeed服务器上,该服务器不进行反向DNS查找,因此我无法使用任何主机名查找。

需要一个简单的解决方案。

RewriteCond %{REMOTE_HOST} ^example.com$ [NC]
RewriteCond %{REQUEST_URI} ^/wp-login.php$
RewriteRule ^(.*)$ blackhole.html [L,R]

旁白:此代码将有效地阻止特定用户,而不是";允许";他们您需要否定第一个条件。即!^example.com$

然而,服务器是否配置为执行主机名查找并不一定是LiteSpeed本身的问题。这可能只是服务器的配置方式。许多共享主机出于性能原因禁用了此功能。


不幸的是,在.htaccess中从外部文件读取值时,您的问题仍然是LiteSpeed。

您可以在Apache 2.4+上使用Apache表达式从外部文件中读取IP地址,并将其与REMOTE_ADDR服务器变量进行比较:

RewriteCond expr "file('%{DOCUMENT_ROOT}/ip-address.txt') != %{REMOTE_ADDR}"
RewriteRule ^wp-login.php$ /blackhole.html [R,L]

其中ip-address.txt是文档根目录中的一个文件,它只包含一个IP地址(不包含换行符(。

然而,不幸的是,在LiteSpeed上,这根本不起作用。它只是无声地失败(LiteSpeed方式(。


旁白:

尽管如此,与其重定向到blackhole.html,不如只提供404或403 Forbidden。例如:

RewriteRule ^wp-login.php$ - [R=404]

最新更新