将 IP 重定向到域
Posted
技术标签:
【中文标题】将 IP 重定向到域【英文标题】:Redirect IP to domain 【发布时间】: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 地址的其他页面。 【参考方案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 地址进行硬编码以进行重定向。以上是关于将 IP 重定向到域的主要内容,如果未能解决你的问题,请参考以下文章