我在专用服务器上有一个 drupal 站点,人们可以从 IP 地址访问我的站点。谷歌机器人也已经索引了一些页面。
我想从 .htacces 文件做 301 重定向。这是一种有效的方法吗?
在这种情况下我该怎么办?
在我看来,您应该使用 mod_rewrite(如果您的网络服务器是 Apache)而不是重定向。通过添加 .htaccess 之类的东西
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.mydomain.com$ [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]
</IfModule>
您会告诉 Apache 以 www.mydomain.com/ 的形式重写任何找到您站点文件夹的方式的 http 请求,并发送 301 标头以通知机器人这是它应该使用的正确 URL。
要完成这项工作,您需要确保在您的 Apache 配置中启用了 mod_rewrite。
检查客户端是否发送了适当的 HTTP 主机头字段。如果没有,请重定向。如果客户端拒绝遵守 RFC 2616,这当然会导致问题。
另一种选择是在 Apache 中设置一个默认虚拟主机,它可以回答不包含有效 HTTP Host 标头字段的请求。
一种方法是要求他们更改他们的“主机”文件,如果他们有 Windows。C:\Windows\System32\drivers\etc 在记事本中拖放“hosts”文件。在文件末尾添加这样的一行:127.0.0.1 mydedicatedsite.com 其中数字是您的 IP 地址。保存存档。
有时该文件需要额外的权限才能让您保存,因此只需向当前用户或“每个人”Windows 用户授予临时权限。
您还可以创建一个他们可以执行的批处理文件,让他们更轻松。
最后,即使该域不存在,它们也会被重定向到您指定 IP 的站点。
好的,所以如果您不能告诉他们“停止访问我的 IP 地址,改用域”,那么我会创建一个虚拟主机来接收所有传入您网站的流量,并使用 .htaccess 甚至是简单的 Javascript 进行重定向重定向,也可以使用第二个选项添加自定义消息,例如“站点已移动,重定向到 domain.com...”
<script language="javascript">alert("Site has moved, redirecting to domain.com ..."); self.location=”domain.com”;</script>
这仅适用于用户流量。