2

我正在使用 .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=$1 [NC,L]

有什么更好的解决方案呢?

4

1 回答 1

1

您需要在内部 rewrite 之前将请求重定向
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=$1 [NC,L]

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

于 2015-08-14T22:07:31.533 回答