2011-07-25 12 views
2

.htaccessファイルがルートから機能するようにしようとしていますが、サブディレクトリにRewriteRuleも使用しています。アクセスしようとしたとき.htaccessがサブディレクトリで無視されています

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    RewriteEngine On 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 

    RewriteCond %{REQUEST_URI} !^/admin/index.php$ [NC] 
    RewriteRule ^admin/(.*)$ /admin/index.php?_pd=$1 [QSA,L] 
    RewriteRule ^(.*)$ /index.php?_pd=$1 [QSA,L] 
</IfModule> 

は、しかし、私は404エラーが出/admin/loginなどなど作品のこの種:それが何をすべきか

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    RewriteEngine On 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ /index.php?_pd=$1 [QSA,L] 

    RewriteCond %{REQUEST_URI} !^/admin/index.php$ [NC] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^admin/(.*)$ /admin/index.php?_pd=$1 [QSA,L] 
</IfModule> 

でもありません。いくつかは機能しますが、機能しないものもあります。

+0

この.htaccessが '/ admin /'フォルダにある場合、書き換えルールのパターンは 'admin /'部分を含んではいけません(URLは現在のフォルダに相対的です)。 – LazyOne

+0

いいえ、それは根本にあります。 – James

+0

まあ、私はすべての詳細を持っていないので、私はあなたの2番目のルールを交換することをお勧めできます(2番目の例) - 3行ブロックを4行ブロックの下に移動します。これは '/ admin/xxx'のURLを処理するはずです。現在、すべてのURL(ルールの順番)と'/admin/'ルールが一致しない'/index.php'が決して一致しません。 – LazyOne

答えて

1

この私がadminフォルダは、この同じ文書が含まれていなかったことから、それはそれが必要のようなルールに従う、としようとしていなかった、ErrorDocumentが明らかに.htaccessであることを含むを逃していたので、実際に発生しましたそのファイルを私に供給してください。