1

こんにちは私はこれに対する答えをウェブで探していましたが、見つかりません。htaccessを使用してURLから特定のパラメーターを削除したいと考えています。

たとえば、次のURLがあります。

www.mysite.com/product.php?product_id=123&session=sdfs98d7fs9f8d7
www.mysite.com/anotherurl.php?session=12312341341&someotherparam=123

私はそれらを301リダイレクトする必要があります:

www.mysite.com/product.php?product_id=123
www.mysite.com/anotherurl.php?someotherparam=123

上記のURLは単なる例であることに注意してください。URLに含まれるパラメータの数やセッションの場所に関係なく、すべてのURLからセッションパラメータを削除する必要があります。

session = blahまでのURL文字列と、session = blahの後のURL文字列にアクセスし、両方の部分を組み合わせて新しいURLにリダイレクトする方法が必要だと思います。

どんな助けでも大歓迎です、ありがとう。

4

3 に答える 3

1

更新しました

つまり、必要なのはsession=xx、クエリからキーと値のペアを削除することだけです。

オプションは次のとおりです。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING}  (.*)?&?session=[^&]+&?(.*)?  [NC]
RewriteCond %{REQUEST_URI} /(.*)
RewriteRule .*  %3?%1%2? [R=301,L]
于 2013-01-09T22:07:15.347 に答える
1

別のサイトで解決策を見つけました

# case: leading and trailing parameters
RewriteCond %{QUERY_STRING} ^(.+)&session=[0-9a-z]+&(.+)$ [NC]
RewriteRule (.*) /$1?%1&%2 [R=301,L]

# case: leading-only, trailing-only or no additional parameters
RewriteCond %{QUERY_STRING} ^(.+)&session=[0-9a-z]+$|^osCsid=[0-9a-z]+&?(.*)$ [NC]
RewriteRule (.*) /$1?%1 [R=301,L]
于 2013-02-05T19:19:24.917 に答える
0

テストされていませんが、動作するはずです:

RewriteCond %{QUERY_STRING} product_id=([0-9]+)
RewriteRule .* product.php?product_id=%1
于 2013-01-09T22:11:11.117 に答える