如何配置 apache 以仅显示访问者的 IP 是否是指定的 IP?

如何配置 apache 以仅显示访问者的 IP 是否是指定的 IP?

我只想显示我自己的内容,如何配置apache?

我正在使用代理访问该网站。

由于权限原因,我无法使用 iptables 来做到这一点。

答案1

您有访问代理的权限吗?如果有,请X-FORWARDED-FOR按如下方式启用并配置 Apache:

SetEnvIf X-Forwarded-For ^your\.real\.IP\.address let_me_in
Order allow,deny
allow from env=let_me_in
ErrorDocument 403 http://google.com

如何仅当查询字符串中有 flat=1 时才允许访问?

您可以使用 mod_rewrite 来执行此操作:

RewriteCond %{QUERY_STRING} !^(.*)flat=1(.*)$ [NC]
RewriteRule ^(.*)$ - [F,NC]

答案2

Order Deny,Allow
Deny from all
Allow from x.x.x.x

这将阻止除指定地址之外的所有地址的访问。将其放置在您的<VirtualHost>块、.htaccess文件或<Directory>块中<Location>- 无论您的需求是什么。

答案3

请参阅此链接:http://httpd.apache.org/docs/2.0/howto/auth.html- 使用你喜欢的任意一种方法。或者两种方法都用。

答案4

鉴于您使用代理,因此仅使用密码保护您的网站可能会更容易。

.htaccess在您的目录中创建一个名为的文件DocumentRoot,然后添加它(如果它已经存在,则只需添加到它)

AuthUserFile /path/to/.htpasswd
AuthName "Secret Squirrel"
AuthType Basic
Require Valid-User

将上面的 /path/to 更改为适合您的内容。

然后创建文件 /path/to/.htpasswd 并添加用户名和密码

htpasswd -c /path/to/.htpasswd user

这将创建文件并添加用户名user并要求输入密码。现在您的网站已受密码保护。

相关内容