【问题标题】:Redirect IP to domain将 IP 重定向到域
【发布时间】:2012-04-16 15:54:16
【问题描述】:

Google 搜索结果将我的页面显示为 (ip)/mypage.html 而不是 https://www.mydomain.com/mypage.html。我相信解决方案是将ip重定向到域。我找到了许多非常相似的方法来做到这一点,但没有一个对我有用。我有一个将 http 重定向到 https 的现有规则。这是我的 .htaccess 文件目前的样子:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^11\.11\.11\.111$ [NC]
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^([a-z.]+)?mydomain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301,L]

我做错了什么?

【问题讨论】:

  • 添加重定向不会更改 Google 认为有效的链接。显然,谷歌已经索引了互联网上链接到您的 IP 地址的其他页面。

标签: .htaccess redirect dns ip


【解决方案1】:

您的 2 个重写条件发生冲突。他们要求 http_host 同时为 11.11.11.111 和 *.mydomain.com。只需添加一个或类似的:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^11\.11\.11\.111$ [NC,OR]
RewriteCond %{HTTP_HOST} ^([a-z.]+)?mydomain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301,L]

【讨论】:

  • 谢谢!现在谷歌会调整,还是我需要做其他事情?我的所有页面都显示为 (ip)/mypage.html。
  • 一个 301 应该用谷歌做到这一点。虽然我从未见过裸 IP 的这种情况,但我认为它会工作得很好。确保在接下来的几周内每隔一段时间检查一次。
  • 301的定义是什么?上面的解决方法算吗?我的域仍然不会出现在搜索结果中,只有 IP。
  • 给它一些时间。否则在google.com/webmasters创建一个帐户
  • @Gerben,如何将192.168.0.5/anyurl 重定向到https://example.com/anyurl
【解决方案2】:

您好,由于主 pub_html 文件夹中的触发器索引,我们也需要执行此操作。这些规则应将 IP 屏蔽为 http(或 https,如果您切换 em),将非 www 设置为 www。这也应该保留子域。这适用于 (1) 位于 pub_html 中的简单站点,因此请仔细测试您的 htaccess 中是否有子域触发器或其他任何内容:

Options +FollowSymLinks
RewriteEngine on

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{SERVER_PORT} 443
RewriteRule ^(.*)$ https://www.exampledomain.com/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^50\.28\.55\.76$ [NC,OR]
RewriteCond %{HTTP_HOST} ^([a-z.]+)?exampledomain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ http://www.exampledomain.com/$1 [R=301,L]

希望它对你们有所帮助和工作。感谢您的想法。

【讨论】:

    【解决方案3】:
    RewriteEngine on 
    RewriteCond %{HTTP_HOST} ^111\.111\.111\.111
    RewriteRule (.*) http://yoursite.com/$1 [R=301,L]
    

    将“111”更改为您的 IP

    【讨论】:

    • 这个效果更好!谢谢。像 111.111.111.111/* 这样的东西怎么样?你能更新一下或者给个建议吗?
    • 非常感谢! gerban 的回答对我不起作用......只是因为 RewriteCond %{HTTP_HOST} ^([a-z.]+)?mydomain\.com$ [NC]
    【解决方案4】:

    更新到威廉的回答。你只需要从这个sn-p替换域名(your-domain.io)。

    RewriteEngine on 
    RewriteCond %{HTTP_HOST} ^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$
    RewriteRule (.*) https://your-domain.io/$1 [R=301,L]
    

    【讨论】:

    • 只是一个警告,这将强制甚至对 localhost 127.0.0.1 的内部命中也重定向,这可能会破坏依赖能够命中的监控服务,例如,127.0.0.1/server-status?auto 来查看站点状态,导致错误。最好不要使用正则表达式并专门对 IP 地址进行硬编码以进行重定向。
    猜你喜欢
    • 2021-04-28
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    • 2020-02-01
    • 2013-07-02
    相关资源
    最近更新 更多