2009-08-27 9 views
1
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^admin/([^/]+)/([^/]+).php website.com/admin/index.php?route=$1/$2 [NS] 
RewriteRule ^modules/([^/]+)/([^/]+).php website.com/admin/index.php?route=$1/$2 [NS] 

上記はログイン時に機能します。 /admin/modules/catalogに行きますが、ステータスバーに表示されるリンクをクリックすると、/admin/vendors/と表示されます。サブディレクトリまたはモジュールが/どのベンダーであるhtaccessディレクトリ

+0

実際のエラーの詳細については、具体的に説明してください。 – Gumbo

答えて

2

がドキュメントに言われているものを考慮すると任意のアイデアについてRewriteCond、あなたが取得し、何を、私はRewriteConditionsだけ次の1つのRewriteRuleに適用されていることを言うだろう:

RewriteCondディレクティブは、 ルール条件を定義します。 1つまたは複数の RewriteCondは、RewriteRule ディレクティブの前に置くことができます。次のルールは、 であり、現在の状態が のURIとパターンが一致する場合のみ使用され、 の条件が満たされている場合にのみ使用されます。

2番目のRewriteRuleの前でそれらのRewriteCondを複製しようとするとどうなりますか?少なくともテストとして?


そして、ここには、S | Skipフラグについてのinteresting thingがあります。他のものと例の中で、言われている。

[S]フラグはあなたが実行したくないルール をスキップするために使用されます。これは、 の のgoto文と考えることができます。

も:

のRewriteCondだけ直後に続く のRewriteRuleに適用されるため、この技術が有用です。 RewriteCondをいくつかの RewriteRulesに適用する場合は、 という手法を無効にし、 の[Skip]フラグを使用します。

が、私はこれを試したことがありませんが、それが役に立つかもしれない、あなたの状況に...多分^^

はまだ、それは私が先に言ったことを示しているように見えるのApacheのマニュアルの一部ですは正しい。

+0

"RewriteConditionsは、次の1つのRewriteRuleにのみ適用されます。 –

0

英語が貧弱だとしますか? /admin/vendorsをリクエストしているようです。しかし、ベンダーは/ modulesに位置していると言っています。

関連する問題