2011-11-15 6 views
0

私たちはウェブサイトを大規模に再構築したばかりで、さまざまなリダイレクトルールを記述しようとしています。htaccess ReWriteCond ReWriteRule - URLにナンセンス文字が含まれていてもリダイレクトが発生する

  • 彼らを正しく再ルーティング古いURLを
  • 彼らテキストない

のRewriteCond文で指定されたを含める誤っできるようにし、再ルートのURL:リダイレクトは半分の作業です(代わりに、ブラウザに "Not Found"エラーメッセージが表示されることが予想される場合)。

.htaccessファイル内のステートメント

RewriteBase/

RewriteCond %{REQUEST_URI} /company/company-history.html 
RewriteRule (.*)$ http://www.technofrolics.com/about/index.html 

RewriteCond %{REQUEST_URI} /press 
RewriteRule (.*)$ http://www.technofrolics.com/gallery/index.html 

上記が正しく希望リダイレクト を実行しますが、私は、ドメイン名の後に次のように入力したときにも動作します::ウェブサイトのOT)が含まつまり

/youcanenteranytext/hereatall/anditstillworks/press 

、任意のテキストは、次の条件付き文字列の前にあるドメインは許可/無視されるようです。どのように条件を制限するか、またはこれを防ぐためのルールを書き換えることについてのアドバイスは、非常に高く評価されます!あなたは%{REQUEST_URI}照合しようとすると、あなたの正規表現で境界を含めに必要

おかげで、マルガリータ

答えて

0

は、^は試合の始まりを示します。

RewriteCond %{REQUEST_URI} ^/company/company-history\.html 

/garbage/stuff/comapny/company-history.htmlが一致しないようにします。同様に:

RewriteCond %{REQUEST_URI} ^/press 

/youcanenteranytext/hereatall/anditstillworks/pressのリクエストが一致しないようにします。ウィル

/pressない/something/pressまたは/press/somethingelseまたは/press/ためONLY対戦要求を

RewriteCond %{REQUEST_URI} ^/press$ 
:あなたはさらに試合終了を示すために、あなたの正規表現で $を採用するので、このような何かすることができます。

+0

ありがとう@Jon -syntaxは現在動作していませんが、私は以来私は完全に我々のフォルダ構造を理解していないことを学んだ。私たちのドメインのトップレベルのコンテンツは、実際にはドメインのルートフォルダの下に2つのサブフォルダとして保存され、上位のディレクトリの親.htaccessファイルは 'ベース'を書き直しています - 私の.htacessファイルに到達すると、technofrolicsのようになります。 com/technofrolics/technofrolics-dot-com。 RewriteBase /ルールを書き換えてこれに対処し、構文が機能するようにしたり、それ以外の方法で処理したりする方法が不明です。 – Margarita

関連する問題