2012-05-22 13 views
6

クエリ文字列を使用して元々作成されたサイトに対して適切な301リダイレクトを作成するのが難しいです。私は、新しいドメインに新しいページに全体のサブフォルダ(「約」という名前)をリダイレクトしたい301リダイレクトからクエリ文字列を削除します

http://www.oldsite.com/about/index.cfm?fuseaction=cor_av&artID=5049 

:古いURL構造は次のようになります。新しいドメインのURLは次のようになりますので、それがうまくリダイレ​​クトしているが、それは付属のオリジナルのURL文字列を保っています

redirectMatch 301 ^/about/ http://www.newsite.com/info 

:だから

http://www.newsite.com/info 

、私はこのようになりますリダイレクトを設定します新しいURLは、ブラウザでこのように見える終わる:

http://www.newsite.com/info/?fuseaction=cor_av&artID=5049 

私は間違いなくこの問題を解決する方法を知っているotのはApache/301の専門家の十分ではありませんよ。私はちょうどからすべてを剥がしたいと思うか。に。

本当に助けていただきありがとうございます。

答えて

28

二つのオプション:

redirectMatch 301 ^/about/ http://www.newsite.com/info? 

か:

RewriteEngine on 
RewriteRule ^about/(.*) http://www.newsite.com/info? [L,R=301] 

末尾に疑問符が重要なビットのようです。もう一つは少しクリーナーはoldsite.comに指定さ.htaccessにこのコードを追加する

+0

ありがとうございます!それは私のために働いた。 – Ash

+3

Apache> = 2.4の場合、最後の疑問符を追加するのではなく、QSDフラグを使用することができます。 'RewriteRule^about /(.*)http://www.newsite.com/info [' QSD'、L 、R = 301] ' –

0

てみてください(最初のあなたのURLの末尾に疑問符を残し)になります。

RewriteCond %{REQUEST_URI} ^/about/index.cfm$ 
RewriteRule ^(.+) http://www.newsite.com/info/ [R=301,QSA] 

は、フォローアップ?

+1

いいえ、' QSA' ** a **は古いURLを新しいURLにppendします。 ** d ** iscardにするには、フラグが 'QSD'(apache> = 2.4)であるか、受け入れられた答えのように'? 'を追加するだけです。 [Apache RewriteRule Flags](http://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_qsa)を参照してください。 – dennis

関連する問題