1

古い Google マップの URL を新しい URL にリダイレクトする際に問題が発生しました。(コンポーネントの更新後)新しいリンクを取得しましたが、古いリンクを機能させたいです。

これは古いものです

domain.com/index.php?option=com_xmap&sitemap=1&view=xml

これは新しいものです

domain.com/index.php?option=com_xmap&view=xml&tmpl=component&id=1

これをリダイレクトするのを手伝ってください:)

4

1 に答える 1

0

次のリダイレクトが機能すると思います。クエリ文字列にない場合はリダイレクトさid=れ、クエリ文字列に追加id=somenumberされますsomenumberが、サイトマップの背後にある番号です。

RewriteCond %{QUERY_STRING} !^(.*&|)id=
RewriteCond %{QUERY_STRING} ^(.*&|)sitemap=([0-9]+)(&.*|)$
RewriteRule ^ %{REQUEST_URI}?id=%2 [QSA,R,L]

ここで使用したものを簡単にまとめます。%{QUERY_STRING}と同様に、変数です%{REQUEST_URI}。正規表現の!前に、その正規表現を否定します (ala は「含まない」)。%2最後の の 2 番目のキャプチャ グループに置き換えられRewriteCondます。この場合、 によってキャプチャされたものに置き換えられ([0-9]+)ます。フラグは、QSA(クエリ文字列の追加)、R(リダイレクト、デフォルトは一時的なリダイレクト)、およびL(このルールが一致する場合、書き換えを停止します。これは、作成される新しいリクエストには影響しません) です。ドキュメントはここにあります。

于 2013-11-03T13:14:27.720 に答える