1

我有一个用于 Apache htaccess 的规则集,以允许访问某些 IP 地址,该地址非常适合在维护模式下工作。但是,这也会阻止一些引荐来源网址(例如 wordpress.com 或 google.com)访问该网站。当前规则集是:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123

RewriteCond %{HTTP_REFERER} wordpress\.com [NC, OR]
RewriteCond %{HTTP_REFERER} google\.com [NC]
RewriteCond %{HTTP_REFERER} ^(.*)$
RewriteRule .* /maintenance.html [R=302]

RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /maintenance.html [R=302,L]

以上规则集有效,但有一个小故障,它并不完美。不知何故,网站可以从任何 IP 访问,并且推荐人是毫无疑问的。我需要一个允许从某些 IP 和某些引荐来源访问网站的规则集。

4

1 回答 1

1

在我看来就像这条线

RewriteCond %{HTTP_REFERER} ^(.*)$

匹配任何东西,使其余条件静音。那条线是干什么用的?

此外,虽然您所做的可能适合您的目的,但请注意,使用虚假的 referer [sic] 标头创建请求并不困难。

此外,如果您的目标是允许那些特定的引用者并将其余部分添加到“maintenance.html”,那么我认为您希望拒绝引用者的匹配条件。但我可能会误解你的意图。

于 2012-12-26T19:30:54.023 回答