如何移除网站URL中的/?_escaped_fragment参数解决重复页面问题
解决纯静态网站?_escaped_fragment参数导致的重复页面问题
以下是几种直接有效的解决方法,按优先级排序:
1. 服务器端301重定向(推荐)
通过服务器配置把带?_escaped_fragment参数的请求永久跳转到不带参数的原始地址,让搜索引擎明确两个地址指向同一页面,合并权重。
Apache服务器(.htaccess)
在网站根目录的.htaccess文件中添加规则:
RewriteEngine On # 匹配包含_escaped_fragment参数的请求 RewriteCond %{QUERY_STRING} ^_escaped_fragment=.*$ # 重定向到无参数的URL,末尾的?用于清空查询参数 RewriteRule ^(.*)$ /$1? [R=301,L]
Nginx服务器
在站点的server配置块中添加:
if ($args ~* "^_escaped_fragment=.*$") { rewrite ^(.*)$ $1? permanent; }
2. 添加Canonical标签
在每个页面的<head>标签内添加canonical链接,指定该页面的首选URL为无参数版本。搜索引擎会以此为准,忽略重复的带参数地址。
示例(以about页面为例):
<link rel="canonical" href="https://www.example.com/about/">
注意每个页面要对应自己的原始路径,比如首页就写https://www.example.com/。
3. Robots.txt屏蔽(辅助)
在网站根目录的robots.txt中添加规则,禁止爬虫抓取带?_escaped_fragment参数的页面,减少重复爬取:
User-agent: * Disallow: /*?_escaped_fragment=
这种方法仅阻止爬虫访问,无法合并已有权重,建议配合前两种方法使用。
内容的提问来源于stack exchange,提问作者user1906725
相关产品推荐
相关产品推荐

