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

时间:2012-12-14 04:56:50

标签: apache .htaccess

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

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

更新

这是我迄今为止写过的.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]  

如何避免显示第一页?

3 个答案:

答案 0 :(得分: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]

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

如果您具有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>

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

答案 1 :(得分:0)

1)你的小偷来自哪些IP?你能阻止这些IP吗?

2)您是否曾向Google报告内容窃取(如果您可以证明您是所有者)?

3)您是否向域名托管服务商报告过此事? (例如GoDaddy)

4)您也可以重写HTML,因此它们是绝对路径而不是相对路径:

例如,相对路径如下所示:

< a href="/page/2.html">page 2</a>

绝对路径将包含您的网站地址:

<a href="http://www.site.com/page/2.html">page 2</a>

答案 2 :(得分:-5)

我不能特别说htaccess。但通过编程,你可以实现这一目标。 比如,您的域名是www.mydomain.com。假设浏览器正在请求您网站的about-me部分。你可以做到以下几点。我正在为PHP展示(因为我很少接受过php教育)。

<?php
if($_SERVER['HTTP_HOST'] == "your domain")
{
//show content
}
else
{
echo "your are not authorized to view contents from here.";
}

如果您更喜欢其他语言,他们可能会找到主机名。