我的站点在页面之间的 URL 中传递一个变量(电话号码)。它从数据库中获取电话号码并将 URL 链接写入:url.com/phone-number/id。
但是,如果目标页面没有电话号码,它将被替换为 0,因此, url.com/0/id。
在我的 .htaccess 文件中重写旧的查询 php 参数以清理 url 我在重写中放置了默认的 url.com/0/id。旧页面没有电话号码,因此所有重定向都将包含 0。
# 301 redirects ad
RewriteCond %{REQUEST_URI} ^/page\.php$
RewriteCond %{QUERY_STRING} ^id=(\d+)$ [NC]
RewriteRule ^page.php$ /page/0/%1? [R=301,NE,NC,L]
我的问题是 Google 使用 url.com/0/id 而不是 url.com/phone-number/id 为所有新页面编制索引,即使您浏览该网站时您会看到 url.com/phone-number/id 用于包含电话号码的页面。
我不确定是我的 URL 重写还是 Google 机器人的行为导致了这种情况。
最佳答案
不要对上述规则使用 R=301
,因为 301 意味着永久重定向。使用 302(临时重定向):
RewriteCond %{QUERY_STRING} ^id=(\d+)$ [NC]
RewriteRule ^page\.php$ /page/0/%1? [R=302,NC,L]
关于.htaccess - 谷歌没有按预期索引我的网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19018662/