2011-12-20 15 views
3

私は自分自身を謙虚にして、理解していると思ったトピックについていくつかのガイダンスを求めなければなりません。私は301のリダイレクト問題で苦労しています。この問題に熱心ではない人が私に光を見てもらえるように願っています。.htaccessファイルにリダイレクト

私のドメインは、以前はdomain.com/prod1、domain.com/prod2などの主要な製品ターゲットとしてフォルダを使用していましたが、最近ターゲットを.phpファイル、つまりdomain.com/prod1.phpに変更しました、domain.com/prod2などです。ソースとターゲットの名前が同じで、リダイレクトループを引き起こすワイルドカードを選択しているので、問題が発生しているようです。私の通常のリダイレクトは機能していますが、これらの存在しないフォルダをそれぞれのPHPファイルにリダイレクトする秘密のソースを見つけることができませんでした。次のように私の最新の試みは次のとおりです。

RedirectMatch 301 ^/prod1 http://domain.com/prod1.php 

多分それは遅すぎるだけだが、私は本当にまっすぐになって(私に)いくつかの助けを使用することができます。ありがとう!

答えて

2

あなたが一致する正規表現を行の末尾を追加することができます。^/prod1(/)?$

+0

そして、私は(/)のグループが冗長である知っています;) –

+0

うん、私はそれは簡単なことだった期待していました。簡単に解説してくれてありがとう、私のクレイジーな脳の中にはもう一度うまくいきます! – Jimmyb

2

あなたの正規表現は、あなたのターゲット(^/prod1マッチ/prod1.php)と一致します。したがって、正規表現に終端文字を追加するか、またはmod_rewriteと条件を使用することができます。

RedirectMatch 301 ^/prod1/?$ http://domain.com/prod1.php 

または:

RewriteEngine On 
# request doesn't end with ".php" 
RewriteCond %{REQUEST_URI} !\.php$ 
RewriteRule ^([^/]+)/?$ http://domain.com/$1.php [R=301] 
関連する問題