2

ウェブサイト全体でクエリ文字列を削除したい(通常はfb_actionで始まるFacebookの共有/類似クエリ)。

そのために.htaccessを使用することを考えました。

私はこれが欲しい:リンク1)

http://example.com/documents/de_desmarais_en_sirois?fb_action_ids=10151430962018298&fb_action_types=og.likes&fb_source=timeline_og&action_object_map={%2210151430962018298%22%3A157643874359578}&action_type_map={%2210151430962018298%22%3A%22og.likes%22}&action_ref_map=[]

次のようになります:リンク2)

http://example.com/documents/de_desmarais_en_sirois

私の.htaccessに、次のように追加しました。

RewriteCond %{QUERY_STRING} fb_action
RewriteRule ^(.*) /$1? [R=301,L]

ただし、元のリンクに移動すると、ルートフォルダexample.com/pages.phpに移動しますが、URLの最初の部分である。を保持したいと思いますexample.com/documents/de_desmarais_en_sirois。私は自分のルーツに行きたくない。

何を変更/実行する必要がありますか?

4

1 に答える 1

2

これらのルールをディレクトリ内の htaccess ファイルに追加したと思います/documents/か?

ルールのターゲットの先頭のスラッシュを削除し、書き換えベースを追加する必要があります。

RewriteBase /documents/

RewriteCond %{QUERY_STRING} fb_action
RewriteRule ^(.*) $1? [R=301,L]

ただし、クエリ文字列の一致は少し改善される可能性があります。

RewriteCond %{QUERY_STRING} (.*)(^|&)fb_[^&]+(.*)$
RewriteRule ^(.*) $1?%1%2 [R=301,L]
RewriteCond %{QUERY_STRING} (.*)(^|&)action_[^&]+(.*)$
RewriteRule ^(.*) $1?%1%2 [R=301,L]

保持したい他のパラメーターがある場合に、facebook クエリ文字列パラメーターのみを削除するには。

于 2012-09-10T04:01:56.133 に答える