質問: 終了スラッシュを処理する方法を書き直す 私はディレクトリに来るものを別のディレクトリにリダイレクトしようとします。私が使用しているrewriteruleコマンドは次のとおりです: ``` RewriteRule ^VirtualDirectory(.*)$ GENS/RealDirectory$1 [L,NC] ``` 問題は、VirtualDirectoryの終了スラッシュがないクエリが、VirtualDirectory / 私が得る行動は次のとおりです: VirtualDirectoryへのクエリ/ユーザーが気づかないうちにうまくいく VirtualDirectoryへのクエリは素晴らしいですが、brwoserに表示されるURLは次のとおりです:GENS/RealDirectory / 私は多くのことを試しましたが、私が望む動作を得ることができません。 ルールを追加すると ``` RewriteRule ^VirtualDirectory$ GENS/RealDirectory/ [L,NC] ``` その特定のケースを処理するためには、ページのすべてのリソースがVirtualDirectoryより前のフォルダに書き換えられる
回答: 何が起こっているのかは、内部の書き換えが後続のスラッシュなしで起こっていることです。その後、mod_dirが引き継ぎ、ブラウザは同じURLにリダイレクトされますが、末尾にスラッシュが付きます。 .htaccessファイルで `DirectorySlash Off` を使用して、mod_dirを無効にすることができます。後続のスラッシュを常に使用する場合は、ルールを次のように変更してみてください。 ``` RewriteRule ^VirtualDirectory/?(.*)$ GENS/RealDirectory/$1 [L,NC] ```