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/

コンテンツの重複を避けるために、次の URL を使用しているユーザーを排除しようとしています。

/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 に答える