3

この Joomla の問題が発生しました。Google は、削除した私のメニュー エントリをインデックスに登録したようですが、メニューのエントリを削除するのを忘れたため、Google はこのサイトをインデックスに登録しました。

http://www.madplanuge.dk/?Itemid=134

この URL (.htaccess) にリダイレクトしたい: http://www.madplanuge.dk/madplan/lav-madplan

どうやってそれをしますか。私はすでに次のことを試しました:

RewriteRule ^\?Itemid=134 http://www.madplanuge.dk/madplan/lav-madplan?[R=301,L]

RewriteCond %{REQUEST_URI} ^\?Itemid=134$
RewriteRule ^\?Itemid=134$ http://www.madplanuge.dk/madplan/lav-madplan?[R=301,L]

上記の解決策はどちらも機能しませんでした。

4

2 に答える 2

4

Apache はクエリ文字列を無視するため、RewriteRule だけでは実行できません。ここでは、探している ID がクエリ文字列に含まれている場合にリダイレクトを実行しています。

RewriteCond %{QUERY_STRING} Itemid=134 [NC]
RewriteRule ^.*$ http://%{HTTP_HOST}/madplan/lav-madplan? [R=301,L]

ブラウザが 301 リダイレクトをキャッシュすることをテストするときは覚えておいてください。そのため、変更を確認するにはキャッシュをクリアする必要があります。

于 2013-06-12T07:32:55.263 に答える
1

あなたは2つのことを間違っています:

  • %{REQUEST_URI}常にスラッシュで始まるため、RewriteCond^/\?では代わりに^\?

  • ^\?Itemid=134$RewriteRuleの を に変更し^.*$ます。RewriteRule は、リクエスト URI だけでなく、URL 全体を最初の引数として受け取ります。

Apache リライトの詳細については、こちらを参照してください。

于 2013-06-12T07:05:03.047 に答える