我使用.htaccess创建一个干净的网址但是
当我检查我的网站时
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]
什么是更好的解决方案?
答案 0 :(得分:1)
您需要外部重定向请求
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]
一点一点......但如果这些网址被编入索引,那么它只会真正重复。如果您始终链接到“漂亮”的网址,则风险相对较低。通过在网页上设置相应的rel="canonical"
link
元素,也可以避免这种情况。