0

我的 .htaccess 中有以下重写规则:

RewriteRule ^([A-Za-z0-9-]+)/?$ product.php?var1=$1
RewriteRule ^([A-Za-z0-9-]+)/?([A-Za-z0-9-_]+)?/?$ product.php?var1=$1&var2=$2
RewriteRule ^([A-Za-z0-9-]+)/?([A-Za-z0-9-_]+)?/?([A-Za-z0-9-_]+)?/?$ product?var1=$1&var2=$2&var3=$3

这是我网站上使用的 url 示例::

/electronics/
/electronics/laptops/
/electronics/laptops/hp/

为避免重复内容,我试图消除使用这些网址的任何人:

/electronics/?
/electronics/?qweqwe=fff
/electronics/laptops/?
/electronics/laptops/?q34t5gt=12
/electronics/laptops/hp/?
/electronics/laptops/hp/?id=12&hdhdhdhhd=3333

我如何进行 301 重定向(假设这是避免重复内容的最佳方法),以删除以“?”开头的任何内容 在斜杠之后?

4

1 回答 1

0

我做了很多搜索和测试。我想出了这个解决方案:

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^?#\ ]*)\?[^\ ]*\ HTTP/
RewriteRule ^(.*)$ %{REQUEST_URI}? [R=301] 
于 2013-01-29T11:40:38.833 回答