如何阻止来自我以外的域的请求?

How to block requests from domain other than mine?

我有一个 wordpress 网站说 mydomain.in,有人在使用域屏蔽并且能够在未经我许可的情况下在他们的域(比如说 external.com)上打开我的网站。我有这个 .htaccess 规则,但它不起作用。

<IfModule mod_rewrite.c>
RewriteEngine On


RewriteCond %{HTTP_REFERER} !mydomain.in
RewriteRule ^.*$ - [F]

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule .* https://www.mydomain.in/? [R=301,L]
</IfModule>

但它仍然从他们的域中打开。这个有什么解决办法

像这样:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^(?:www\.)?mydomain\.in$ [NC]
RewriteRule ^ - [F]

RewriteRule ^index\.php$ - [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

注意这条新规则:

RewriteCond %{HTTP_HOST} !^(?:www\.)?mydomain\.in$ [NC]
RewriteRule ^ - [F]

检查请求的 HTTP_HOST 是否不是 mydomain.in 然后简单地阻止具有 403 - Forbidden 状态的请求。