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]
我做错了什么?
答案 0 :(得分:18)
RewriteEngine on
RewriteCond %{HTTP_HOST} ^111\.111\.111\.111
RewriteRule (.*) http://yoursite.com/$1 [R=301,L]
将“111”改为您的IP
答案 1 :(得分:14)
你的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]
答案 2 :(得分:0)
嗨,由于主pub_html文件夹中的触发器索引,我们还要求执行此操作。这些规则应该将IP掩盖为http(如果切换em,则为https),将非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 :(得分:0)
更新为威廉的答案。您只需要替换此代码段中的域名(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]
答案 4 :(得分:0)
这可能会有所帮助:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^ENTER_YOUR_SERVER_IP
RewriteRule (.*) http://yourdomain.com/$1 [R=301,L]
查看这篇完整的文章以获取完整指南。 (我强烈建议你检查一下)