1

2 つの異なるタイプの URI の場合に発生させたい 2 つの異なることがありますが、最初のケースが既に受け入れられている場合、2 番目のケースの実行を止めることはできないようです。

次に例を示します。

abc.com
abc.com/asdf
abc.com/en/asdf
abc.com/zh-cn/asdf/asdf

すべてをこの RewriteRule に向ける必要があります。

RewriteRule ^(([a-z]{2})(-[a-z]{2})?)(/([a-z0-9-\./]*))?$ /index.php?lng=$1&tpl=$4 [QSA,L,NC]

パート2:

abc.com/myadmin/
abc.com/myadmin/asdf
abc.com/myadmin/en/asdf
abc.com/myadmin/zh-cn/asdf/asdf

すべてをこの RewriteRule に向ける必要があります。

RewriteRule ^myadmin/(([a-z]{2})(-[a-z]{2})?)(/([a-z0-9-\./]*))?$ /myadmin/index.php?lng=$1&tpl=$4 [QSA,L,NC]

私がこれを達成しようとしてきた方法は、次のように条件を積み重ねることです。

RewriteCond %{REQUEST_URI} !^/myadmin/
RewriteRule ^(([a-z]{2})(-[a-z]{2})?)(/([a-z0-9-\./]*))?$ /index.php?lng=$1&tpl=$4 [QSA,L,NC]

RewriteCond %{REQUEST_URI} ^/myadmin/
RewriteRule ^myadmin/(([a-z]{2})(-[a-z]{2})?)(/([a-z0-9-\./]*))?$ /myadmin/index.php?vlng=$1&tpl=$4 [QSA,L,NC]

しかし、私が何をしても、両方のルールが引き続き実行されます。たぶん、私はこれを正しく行っており、2 番目の実行は php テンプレートのさらに下で発生していますが、よくわかりません。私がこれまで行ってきたことが良さそうに見えるかどうかを知る必要があるだけです。

4

2 に答える 2

1

この条件を置き換えます。

RewriteCond %{REQUEST_URI} !^/myadmin/

これらの2で:

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

すべてを一緒に入れて:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^myadmin/(([a-z]{2})(-[a-z]{2})?)(/([a-z0-9-\./]*))?$ /myadmin/index.php?vlng=$1&tpl=$4 [QSA,L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(([a-z]{2})(-[a-z]{2})?)(/([a-z0-9-\./]*))?$ /index.php?lng=$1&tpl=$4 [QSA,L,NC]
于 2013-08-06T20:38:18.737 に答える
0

OK、問題が見つかりました。Chrome ブラウザーの Clear Cache 拡張機能が一度に 1 つのタブでのみ機能し、その拡張機能のデフォルト設定が、拡張機能がアクティブ化された後にすべてのタブを自動的にリロードすると想定したのは、私のせいでした。

ほとんどの開発者と同様に、サイトのテスト領域、開発ツール、および技術リソースにアクセスするために開発を行っている間、ブラウザで常に 5 ~ 10 個のタブを開いています。コードを作成するときは、通常、すべてのキャッシュ クリーニングを手動で行います。これにより、実際に完了したことを確認できます。この場合、「Clear Cache」という新しい拡張機能を Chrome ブラウザに追加して、これを処理できるようにすることにしました。毎回きれいなテストを行うために必要な小さな変更をたくさん行っていたので、少し速くなりました。私が気付いていなかったのは、拡張機能を有効にすると、他のすべてのタブのキャッシュも消去されるということでした. また、クリーニングの実行後にすべてを自動的にリロードするように設定されているデフォルト設定にも気づきませんでした。それもしないから」

要約すると、サイトで作業しているときに、あるタブで管理領域の変更をテストしていたところ、サイトの公開側からのみ取得できる Cookie の更新が表示され続け、htaccess の変更にまだ何か問題があると思わされていました。 . トラブルシューティングを 2 日間行った後、物事を簡単にするために追加した便利でダンディな拡張機能が、実際にはブラウザのすべてのタブを知らずにリロードしていて、他のすべての呼び出しが Cookie を継続的に返す原因になっていることに気付きました。私を混乱させていた私のサイトの公開側によってのみ生成されます。この後、手動でキャッシュをクリアすることに戻ります。

于 2013-08-08T19:55:57.120 に答える