2009-08-26 12 views
2

私は別の質問があり、私はこれで初心者です。これらの2つの.htaccess RewriteRulesをどのように組み合わせますか?

私はこれのRewriteRuleを持っている、それは正しくクエリをリダイレクトしますが、私は他のディレクトリを使用することはできません。すべてのこれらのディレクトリをスキップする

RewriteRule ^([0-9A-Za-z]+)/?$ /query.php?id=$1 [L] 

、今こののRewriteRuleを今以上のルールがあることが必要これが機能するようコメントしました。

RewriteRule ^(css|js|admin|pages|includes|images)(/|$) - [L] 

2つを組み合わせることはできますか?もしそうなら、どうですか?

+1

操作の順序はありますか?最初のリライトを2番目のリライト後に置くと、それはうまくいくのでしょうか? –

答えて

4

RewriteRuleがファイル内で発生した順にチェックされますので、最初にcss|js|admin|pages|includes|imagesルールを入力すると、最初に一致し、他のルールに達する前に書き換えプロセスが停止します。そのルールの最後には[L]フラグを付けておいてください。

+0

私は見ていたものを確認するためにちょうどよいことがありました –

0

この巧妙なトリックもあります:あなたは、動的またはshowいくつかのモジュールをロードできるように

ファイルパスが存在しないファイルまたはディレクトリでない場合、ある
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+) query.php?id=$1 [L] 

は、(PHPスクリプトにリクエストを送るには便利な404ページ)。

+0

ありがとう、これは404リダイレクトのようなものですか?カスタム404ページはどこに配置しますか? –

+0

すべてのファイル(ファイルシステム内のファイルやディレクトリではない)をPHPスクリプトにリダイレクトします。つまり、そこに対処することができます。内部ルーチンによって、要求されたURIが存在しないと判断された場合は、404ステータス・エラーとエラー・ページの内容を送信できます。 – djc

関連する問題