.htaccess - 谷歌没有按预期索引我的网址

标签 .htaccess url mod-rewrite seo

我的站点在页面之间的 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/

相关文章:

.htaccess RewriteRule 在子目录中不起作用

url - 上传视频并获取直接URL以进行流式传输

java - 在 J2ME 浏览器中可以打开的 URL 的最大长度是多少?

apache - 使用 .htaccess 删除链接地址中的 ID 号

apache - 使用 Apache 将 HTTP 重定向到 HTTPS

javascript - URL 重写和获取参数未按预期工作

.htaccess - 仅在 .htaccess 中允许从我的特定另一个网站访问我的网站

apache - 使用 .htaccess 限制除我以外的所有 IP 对登录页面的访问

跨域的 PHP 共享 session

html - 通过URL生成的托管图像(特别是QR码)