0

次のような古いサイト URL があります: http://www.test.com/partners/redirects.aspx?product=MobileDevice

現在、この URL は外部サイトにリダイレクトされます。これをhttp://www.google.comと呼びましょう。これは、約 10 年前に開発された、ぎこちない古い管理ポータルで発生します。

このサイトは Windows 環境で動作します。Windows から Linux 環境と php に移行しています。

Linux 側でこのリダイレクトを引き継ぐにはどうすればよいですか?

私はこれを試しました:

Redirect 301 /partners/redirects\.aspx\?product\=MobileDevice http://www.google.com

そしてそれはうまくいきませんでした。. ? =私はエスケープされた(with )で試しましたが、エスケープ\しませんでした。

4

1 に答える 1

1

何も逃げる必要はないと思います。Redirect 301 /partners/redirects.aspx?product=MobileDevice http://www.google.com動作するはずです。しかし、あなたはこれを試みたと述べました。

あなたの Apache インスタンスは .htaccess ファイルの処理を許可していないと思います。VirutalHost またはグローバル Apache 構成を調べて、AllowOverride Allがどこかで宣言されているかどうかを確認してください。これがないと、Apache は .htaccess ファイル内のすべてではないにしてもほとんどのディレクティブを無視します。

編集:

さらに調査を行うと、まったく同じ問題の別の質問があります。文字列内のデータを含む URL に対して永続的な Apache リダイレクト (疑問符)

クエリ文字列が機能していないようです。この回答を変更して、クエリ文字列を運ぶことなく盲目的にリダイレクトする必要がある場合があります。したがって、次のような結果になります

RewriteEngine on
RewriteBase / 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /partners/redirects.aspx\?product=MobileDevice [NC]  
RewriteRule ^ http://www.google.com [L,R=301]
于 2013-02-20T20:51:55.287 に答える