.htaccess 如何使用htaccess防止重复内容

.htaccess 如何使用htaccess防止重复内容,.htaccess,duplicate-content,.htaccess,Duplicate Content,我正在使用.htaccess创建一个干净的URL,但是 当我检查我的网站时 example.com/some request它的内容与 xyz.com/product\u view.php?category\u id=some request 我发现很难解决这个问题,这是我的重写规则: RewriteEngine on RewriteBase / RewriteRule ^([0-9a-zA-Z_-]+)$ product_view.php?category_id=$1 [NC,L] 有什

我正在使用.htaccess创建一个干净的URL,但是 当我检查我的网站时
example.com/some request
它的内容与
xyz.com/product\u view.php?category\u id=some request

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

RewriteEngine on

RewriteBase /

RewriteRule ^([0-9a-zA-Z_-]+)$ product_view.php?category_id=$1 [NC,L]
有什么更好的解决方案吗?

您需要从外部重定向对的请求
example.com/product\u view.php?category\u id=some请求

到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=$1 [NC,L]

有点旁白。。。但只有当这些URL被索引时,它才是真正的重复。如果你总是链接到你的“漂亮”URL,那么风险相对较低。这也可以通过在页面上设置适当的
rel=“canonical”
链接来避免。

Wohoo!非常感谢w3d!:)