如何阻止访问除剧目以外的网站?

问题描述 投票:0回答:1

我正在尝试使用 .htaccess 阻止对我网站的所有访问,除了我的 IP。

问题是我在 /img/ 中有一些图像用于我的地址电子邮件签名,所以我需要这些是免费的。

谢谢。

起初我有这个:

RewriteCond %{REMOTE_ADDR} !^38\.37\.31\.238$
RewriteCond %{REQUEST_URI} !^/maintenance.php$
RewriteCond %{REQUEST_URI} !^/signature/link-icon.png
RewriteCond %{REQUEST_URI} !^/signature/mail-icon.png
RewriteCond %{REQUEST_URI} !^/signature/profil-picture.png
RewriteCond %{REQUEST_URI} !^/signature/profil.png
RewriteCond %{REQUEST_URI} !^/signature/skype-icon.png
RewriteCond %{REQUEST_URI} !^/signature/tel-icon.png
RewriteRule .* /maintenance.php [L,R=302]

但我不想再重定向到 maintenance.php,只是一个随机的 404 错误或类似的错误。我只想将域用于电子邮件。

.htaccess mod-rewrite ip
1个回答
0
投票

返回 403 Forbidden 可能比返回 404 更合乎逻辑,除非您有特定要求?

:
RewriteRule .* /maintenance.php [L,R=302]

要发送 403,您基本上只需要将最后一行更改为:

RewriteRule ^ - [F]

或者将标志(第三个)参数更改为

[R=404]
以发送 404。这里不需要
L
标志。

虽然我倾向于将其分为两个规则......

# Public URLs
# (Assuming all public URLs are in the "/signature" subdirectory)
RewriteCond %{REQUEST_URI} link-icon\.png$ [OR]
RewriteCond %{REQUEST_URI} mail-icon\.png$ [OR]
RewriteCond %{REQUEST_URI} profil-picture\.png$ [OR]
RewriteCond %{REQUEST_URI} profil\.png$ [OR]
RewriteCond %{REQUEST_URI} skype-icon\.png$ [OR]
RewriteCond %{REQUEST_URI} tel-icon\.png$
RewriteRule ^signature/ - [L]

# Block the reset, except for the specific IP address
RewriteCond %{REMOTE_ADDR} !=203.0.113.111
RewriteRule ^ - [F]

请注意,最后一条规则中的

=
前缀使其成为精确的字符串匹配,而不是正则表达式。

© www.soinside.com 2019 - 2024. All rights reserved.