htaccess - 拒绝未经授权的域名请求

Car*_*rlo 8 apache .htaccess

我有一个网站"www.mysite.com",它有自己的IP.现在几个月后我看到几个域指向我的ip服务器(它不是共享的ip).我可以浏览整个网站与这些未经授权的域名,他们在谷歌索引与我的内容和所有.

如何设置我的htaccess只允许"www.mysite.com"的请求?

UPDATE

这是我迄今为止写的.htaccess的建议,但不知怎的,第一页仍然提供,没有图像

的.htaccess

SetEnvIfNoCase Referer "^http://(www.)?thiefdomain.com" spam_ref  
SetEnvIfNoCase Referer "^http://(www.)?thiefdomain2.com" spam_ref2


<FilesMatch "(.*)">  
    Order Allow,Deny  
    Allow from all  
    Deny from env=spam_ref  
    Deny from env=spam_ref2  
</FilesMatch>  

RewriteEngine On  
RewriteCond %{REQUEST_FILENAME} -s [OR]  
RewriteCond %{REQUEST_FILENAME} -l [OR]  
RewriteCond %{REQUEST_FILENAME} -d  
RewriteRule ^.*$ - [NC,L]  
RewriteRule ^.*$ index.php [NC,L]  
Run Code Online (Sandbox Code Playgroud)

如何避免显示第一页?

yas*_*asu 11

如果你想使用mod_rewrite,你可以检查SERVER_NAME以阻止未经授权的域:

RewriteEngine on
RewriteCond %{SERVER_NAME} ^(www\.)?thiefdomain1\.example$ [OR]
RewriteCond %{SERVER_NAME} ^(www\.)?thiefdomain2\.example$ [OR]
RewriteCond %{SERVER_NAME} ^(www\.)?thiefdomain3\.example$
RewriteRule ^ - [F]
Run Code Online (Sandbox Code Playgroud)

要么

RewriteEngine on
RewriteCond %{SERVER_NAME} !^(www\.)?yourdomain\.example$
RewriteCond %{SERVER_NAME} !^(www\.)?yourdomain-alias\.example$
RewriteRule ^ - [F]
Run Code Online (Sandbox Code Playgroud)

如果您具有root权限,则还可以使用基于名称的虚拟主机解决问题,如下所示:

NameVirtualHost *:80

<VirtualHost 192.0.2.100:80>
  ServerName dummy
  <Location />
    Order deny,allow
    Deny from all
  </Location>
  ...
</VirtualHost>

<VirtualHost 192.0.2.100:80>
  ServerName www.yourdomain.example
  ServerAlias yourdomain.example
  ...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

第一个VirtualHost定义被视为默认虚拟主机.如果以thiefdomain1.example,thiefdomain2.example,thiefdomain3.example或除www.yourdomain.example或yourdomain.example(在第二个中定义VirtualHost)之外的任何其他主机名访问192.0.2.100 ,则Apache引用第一个VirtualHost并返回403 Forbidden状态.