2016-09-15 7 views
-1

をリダイレクト.htaccessは、ユーザーがURLを入力した場合www.olddomain.com/bonuswww.newdomain.com/bonusにリダイレクトしていることをリダイレクトwww.newdomain.comに古いドメインの任意の他のページやルート。私はhtaccessファイルは、私が作成する必要が内部エラー

RedirectMatch 301 ^/bonus/ http://www.newdomain.com/bonus/ [L] 
RedirectMatch 301 ^/ http://www.newdomain.com/ [L] 

、それを達成するために、このコードを使用してきた。しかし先週からそれだけで内部サーバーエラーが発生するいくつかの時間のために

エラーが各行の[L]によって発生していることがわかりました。削除するとエラーは発生しませんが、www.olddomain.com/bonusに行っても、ユーザはいつもwww.newdomain.comにリダイレクトされます。

どうすればこの問題を解決できますか?

答えて

1
RedirectMatch 301 ^/bonus/ http://www.newdomain.com/bonus/ [L] 
RedirectMatch 301 ^/ http://www.newdomain.com/ [L] 

これらのディレクティブは、働いたことはなかっただろう、それはあなたが突然エラーを得ている理由を言うのは難しいです。

[L]フラグは、500 Internal Serverエラーの原因となっています。これは無効な構文です - しかし、これは常に無効な構文です! RedirectMatchはmod_aliasディレクティブです。一方、末尾にフラグ(例えば、[L])は、mod_rewrite(つまり、RewriteRule)の機能です。彼はwww.olddomain.com/bonus

に行くが、どちらも、これらのディレクティブは、上記URLをリダイレクトする場合でも

www.olddomain.com/bonus/の末尾にスラッシュのみ)をリダイレクトします。上記のURLと一致する必要がある場合は、ディレクティブから末尾のスラッシュを削除する必要があります。例:

RedirectMatch 301 ^/bonus http://www.newdomain.com/bonus 
RedirectMatch 301 ^/ http://www.newdomain.com/ 
関連する問題