mod_rewrite によって作成された (言語用の) 仮想サブディレクトリを含むサイトがあります。彼らは正常に動作します。ここで、特定のサブディレクトリからのみアクセスする必要があるいくつかのファイルをアップロードする必要があります。
現在、サブディレクトリを介して任意のファイルにアクセスできます。
site.com/file.txt
site.com/jp/file.txt
site.com/es/file.txt
site.com/another_file.txt
site.com/jp/another_file.txt
site.com/es/another_file.txt
site.com/third_file.txt
site.com/jp/third_file.txt
site.com/es/third_file.txt
これらのファイルには、関連するサブディレクトリからのみアクセスする必要があります。無関係なディレクトリからアクセスしようとすると、404 エラーがスローされます。
site.com/file.txt - for english (the only language that does not have a subdirectory)
site.com/jp/anoter_file.txt - for japaneese
site.com/es/third_file.txt - for Spanish.
ファイル名にパターンはなく、多くの言語があることに注意してください。そのため、ファイル/サブディレクトリごとに個別のルールを作成する必要があります。
多くの言語とファイルがあるため、次のように言語ごとにルールを記述するのは悪夢になる可能性があります。
たとえば、another_file.txt ファイルを jp ディレクトリ内のみに表示したい。したがって、次のように除外する必要があります。
RewriteRule ^de/another_file.txt - [R=404]
RewriteRule ^fr/another_file.txt - [R=404]
RewriteRule ^es/another_file.txt - [R=404]
しかし、もっとエレガントな解決策があると思います。私の知る限り、これは例外によって達成できます。
このような:
RewriteRule ! ^jp/another_file.txt - [R=404] - but it does not work.
この表現を修正する/新しい表現を作成する方法を教えてください。