如何使用 htaccess 防止重复内容

How to prevent duplicate content using htaccess

我正在使用 .htaccess 创建一个干净的 URL 但是 当我检查我的网站时 example.com/some-request 它有重复的内容 xyz.com/product_view.php?category_id=some-request

我很难解决这个问题,这是我的重写规则:

RewriteEngine on

RewriteBase /

RewriteRule ^([0-9a-zA-Z_-]+)$ product_view.php?category_id= [NC,L]

有什么更好的解决方案?

您需要外部重定向 请求
example.com/product_view.php?category_id=some-request
xyz.com/some-request 在您的内部重写.

之前

尝试以下操作:

RewriteEngine on
RewriteBase /

# Redirect direct requests for the real URL to your desired URL
RewriteCond %{THE_REQUEST} \?category_id=([^\ ]*)
RewriteRule ^product_view\.php /%1? [R=301,L]

# Existing rewrite to real URL
RewriteRule ^([0-9a-zA-Z_-]+)$ product_view.php?category_id= [NC,L]

顺便提一下...但只有当这些 URL 被编入索引时,它才真正是重复的。如果您一直链接到您的 "pretty" URL 那么风险相对较低。这也可以通过在页面上设置适当的 rel="canonical" link 元素来避免。