.htaccess修复畸形URL:移除特定虚假page参数技术问询
解决畸形URL中虚假page参数的问题
问题说明
爬虫生成了一批无效链接,核心问题是畸形URL中存在虚假的page参数:当URL里出现两个page参数时,第一个是虚假参数,需要移除。处理规则如下:
- X为随机值
- 仅当检测到
?/?page格式的参数时,才移除对应的虚假page参数
有效URL示例
search?pagepage=496https://example.com/search?page=496https://example.com/search?page=496&orderBy=oldest
无效URL示例
search?/?page=Xhttps://example.com/search?/?page=X&page=496&orderBy=oldest
未完成的尝试规则
之前尝试的规则尚未完善:
RewriteCond %{QUERY_STRING} ^(.*)&?^XXX[^&]+&?(.*)$ [NC] RewriteRule...
最终可行的重写方案
通过以下Apache Rewrite规则可以解决问题:
RewriteCond %{QUERY_STRING} ^(.*)&?/\?page=[^&]+&?(.*)$ [NC] RewriteRule ^/?(.*)$ /search$1?%1%2 [R=301,L]
规则说明:匹配查询字符串中包含/?page=X的虚假参数,将其移除后拼接剩余的有效参数,返回301永久重定向,既修正了无效链接,也能让搜索引擎更新索引。
内容的提问来源于stack exchange,提问作者SixSense
相关产品推荐
相关产品推荐

