2011-04-26 11 views
0

を行う最初の1 dosen'tの試合なら、これは瞬間mod_rewriteを - 2つのリダイレクトを行う - 二

RewriteEngine On 

# Only redirect if file dosen't exist. 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^admin/(.*)  /admin.php   
RewriteRule ^([^/])   /index.php   [L] 

で私のhtaccessファイルであり、私はこれが動作しない理由を任意のアイデアを持っていません。私は最終的にmod_rewriteを把握したと思います。

基本的にURLがdomain.com/admin/somethingの場合、domain.com/admin.phpにリダイレクトします(その場合は/ adminを含む)。しかし、もしそれ以外のものがあれば、index.phpにリダイレクトしてほしい。

どのようにこれを達成するためのアイデアですか?

ありがとうございます。

答えて

2
RewriteEngine On 

# No redirect, if file or directory exists 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule .* - [L] 

RewriteRule ^admin/(.*)  /admin.php   [L] 
RewriteRule ^(.*)$   /index.php   [L] 

Didnt it it。興味深い部分は、adminルールの後のL -Flagです。これは、次のルールが一致しないようにするためです。

RewriteRuleにのみ適用され、(あなたのケースでは)index.phpにルールに影響しないので、RewriteCond - ステートメントを変更しました。

+2

これはうまくいく、2番目のRewriteRuleの先頭の '/'を取り除くだけでよい。 – clmarquart

+0

aha brilliant! :) clmarquartあなたはそれを解決しました! :) ありがとうございました。 –

+0

私はclmarquartさんのコメントに対する回答を編集しました。 –

関連する問題