我想允许访问特定域。例如,如果 domain 包含单词 asdf 它应该允许访问。问之前我最后的尝试是:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^.*asdf.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} !^.*1234.*$
#RewriteRule .* - [F]
所以在这里我试图限制对除包含 asdf 或 1234 的域之外的所有域的访问。
我想允许访问特定域。例如,如果 domain 包含单词 asdf 它应该允许访问。问之前我最后的尝试是:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^.*asdf.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} !^.*1234.*$
#RewriteRule .* - [F]
所以在这里我试图限制对除包含 asdf 或 1234 的域之外的所有域的访问。
您需要%{HTTP_HOST}
用于检查 URL 中的域,而不是%{HTTP_REFERER}
.
你可以试试这个代码:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^.*(asdf|1234)\. [NC]
RewriteRule .* - [F]
Anubhava 给了我一个线索,但不是 http_host。最后的问题是 OR。现在下面的工作就像一个魅力:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^.*(1234|asdf).* [NC]
RewriteRule .* - [F]
所以 HTTP_REFERER 做了它应该做的(检查域访问)。和 | 作为我需要的 or 论点。