2010-12-12 17 views
1

関連するすべてのHTTPリクエストをindex.phpブートストラップファイルに渡すための解決策を見つけようとしています。Regex in RewriteRule、ブートストラップPHPファイルに渡す

私は強制する2つのルールがある:

  • 任意のディレクトリ、
  • (任意のディレクトリにある).htmlまたは.ajaxファイル拡張子を持つ任意のファイル。

これらのファイルまたはディレクトリは実際には存在しません - ブートストラップPHPファイルは関連するコンテンツを動的に出力します。ここで


RewriteEngine on 
Options +FollowSymLinks 
#RewriteCond %{REQUEST_URI}$1 !-f 
RewriteRule ^/?(.+(?:\.html?)?)$ index.php [L] 
RewriteRule \.ajax$ index.php [L] 

のRewriteCondは、どんな効果を持っているようには見えなかったとして、コメントアウトされてきた私の現在の.htaccessファイルで、正しいのRewriteRuleでそれはとにかく廃止されます(画像ファイル、javascriptファイルなどはルールでは一致しませんので、存在を確認する必要はありません)。

私は正規表現のエキスパートがこれを簡単に解決できると思いますが、プラスは2つのルールを1つの正規表現に結合することにもなります。

ありがとうございます!

答えて

2

このルールは、それを行う必要があります: `home.html`と` /メインpage.html`のために動作しますが、ディレクトリ、すなわち、 `main`と`メイン/ admin`を無視

RewriteRule .+\.(html|ajax)$ index.php 
+0

おかげで、。 – Greg

+0

@Greg:そのURLパスにはファイル名の拡張子がありません。 – Gumbo

+0

私はRewriteRuleもディレクトリにマッチさせることを望んでいました、それは可能ですか? – Greg