如何防止谷歌网络爬虫将单个页面作为两个不同的页面读取

Posted

技术标签:

【中文标题】如何防止谷歌网络爬虫将单个页面作为两个不同的页面读取【英文标题】:How do I prevent google web crawler from reading a single page as two different pages 【发布时间】:2021-04-14 11:25:11 【问题描述】:

我有一个网页说 example.com/blog/news.php 我使用了这个代码:

RewriteEngine on 
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME\.php -f
RewriteRule ^(.*)$ $1.php [NC,L]

.htaccess 文件中隐藏文件扩展名。但谷歌爬虫将 example.com/blog/news.phpexample.com/blog/news 读取为两个不同的页面。请问我该如何防止这种情况,我试图将 news.php 页面重定向到 news 但它返回了一条错误消息,说明重定向或类似的东西。

【问题讨论】:

【参考方案1】:

您可以使用以下规则将您的 .php 网址 301 重定向到新的 (non-php ) 格式,这样 Google 只会将您的新网址编入索引。

将以下内容放在RewriteEngine on 和现有规则之前:

RewriteCond %ENV:REDIRECT_STATUS ^$
RewriteRule ^([^.]+)\.php$ /$1 [L,R=301]

【讨论】:

以上是关于如何防止谷歌网络爬虫将单个页面作为两个不同的页面读取的主要内容,如果未能解决你的问题,请参考以下文章

设计一个网络爬虫

爬虫基础1 怎么使用浏览器查看网络请求

如何判断网络爬虫还是浏览器访问网站,如何防止?php

网络爬虫

如何防止谷歌翻译改变我页面的 html 结构?

WebCollector下载整站页面(JAVA网络爬虫)