在您的域上使用 WWW 进行双 301 重定向时遇到问题?某些页面是否没有从 HTTP 重定向到 HTTPS?在本文中,我将为您提供有关如何解决此问题的快速提示。
该功能解决了一些问题,例如缺少重定向,网站从版本访问 http,多个重定向错误和许多其他错误。
[http://www.] 上的双重重定向 301
今天我去获取我网站的 SSL httpsatus.io 我在我的版本中遇到了两个重定向 301 万维网 并且没有 https 从网站。它可能看起来微不足道,但对于 您网站的 SEO.
如下图所示,带有 HTTP://WWW 的站点的 URL 有两个 301 重定向,可能一个用于 HTTPS 版本,另一个用于站点的非 WWW 版本。
解决这个问题很简单。我使用 Cloudflare,所以我登录到我的 CloudFlare 仪表板和域并转到选项卡 页面规则.
在那里我创建了一个单一版本的重定向 万维网 直接转版 https 没有 万维网.这个规则,除了解决问题,大部分时间都放弃了在服务器上使用一些插件或重定向规则的需要。 nginx 或不 .htaccess 从阿帕奇。
访问时 页面规则,只需创建一个新的规则重定向 www.mysite.com/* 为了 https://meusite.com/$1 使用 301 重定向规则。
[*] 和 [$1] 的值很重要,因为它们标识用户正在进入哪个页面并直接重定向到版本 https 从该页面而不是重定向到主页。
看看我如何在下面设置我的域。执行相同操作,然后单击保存并清除 CloudFlare 缓存。所以双重重定向将不再存在,只留下一个 301。
我们还建议阅读我们的指南 搜索引擎优化和工具.
通过 .HTACCESS 文件重定向
如果您不使用 Cloudflare,可以直接从服务器应用相同的重定向规则。尽管我们强烈建议使用 CDN 并在其上进行操作。
要在 .HTACCESS 文件中应用的规则如下。请记住,仅当您不使用 Cloudflare 时才执行此操作。
<IfModule mod_rewrite.c
>
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.seusite\.com [NC]
RewriteRule (.*) https://seusite.com/$1 [L,R=301]
</IfModule
>
在 Nginx 中重定向 WWW
如果你的服务器和我一样是纯 Nginx 的,那么使用 CloudFlare 和第一篇教程对你来说无疑要容易得多。万一你还固执,我给你留一个 Nginx 的配置,但我不会花时间解释它,因为我不是 Nginx Config pro:
#=========================#
# domain settings #
#=========================#
# Catch http://domain, and http://www.domain
server {
listen 80;
server_name www.domain domain;
# Redirect to https://domain
return 301 https://domain$request_uri;
}
# Catch https://www.domain
server {
listen 443;
server_name www.domain;
# Redirect to https://domain
return 301 https://domain$request_uri;
}
# Catch https://domain
server {
listen 443;
server_name domain;
root /usr/share/nginx/domain;
index index.html index.htm;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
ssl_prefer_server_ciphers on;
location / {
try_files $uri $uri/ =404;
}
}
我希望本文中的提示能够解决您的双重重定向或无 WWW 重定向问题。如果您喜欢它,请与您的朋友分享,不要让他们的网站有双重重定向和 伤害 SEO 他们的。