2009-06-14 7 views
1

管理フォルダに対応するために、この現在の書き換えルールを変更する必要があります。ここに私の現在のMOD-書き換えコードは次のとおりです。サブフォルダとモードリライト

 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z]+?)/([a-z]+?)/(.*)$ index.php?model=$1&view=$2&params=$3 [L,NS] 

私は、このフォルダ構造を持っている:

 
ROOT: http://www.domain.com/ 
ADMIN: http://www.domain.com/admin/ 

.htaccessファイルは、それが正常に動作する「管理者」フォルダ内にある場合。

 
URL: http://domain.com/admin/faq/edit/13/asc 
(NOTE: http://domain.com/.htaccess) 
Array 
(
    [model] => admin 
    [view] => faq 
    [params] => edit/13/asc 
) 

私はその管理フォルダを認識し、実際のディレクトリで、別々の再を使用するMOD-書き換えをしたい:その私が取得ルートフォルダにする場合、

 
URL: http://domain.com/admin/faq/edit/13/asc 
(NOTE: http://domain.com/admin/.htaccess) 
Array 
(
    [model] => faq 
    [view] => edit 
    [params] => 13/asc 
) 

しかし:私は取得します書き込みルール。

ありがとうございます。

答えて

1

経由で直接ルールに条件を含めることであろう。ここで重要な点は、[L]です。これは、mod-rewriteに、これが一致する場合、残りのルールの実行を停止するように指示します。管理フォルダに複数のルールが必要な場合は、さらにRewriteRuleステートメントを追加してください。最後に[L]を追加してください。

それはそれを行う必要があります。

2

他の条件の前に

RewriteCond ^admin/ 
RewriteRule (your Rule) [L] 

を追加します。それはトリックを行う必要があります。

RewriteCond ^admin/ 
RewriteRule (whatever rule you need for the admin folder) [L] 

RewriteEngine On後にこの権利を追加します。

もう一つの方法は、あなたのルートの.htaccessにこれを追加

RewriteRule ^admin/(rest_of_regex)$ (regex_stuff) [L] 
関連する問題