2011-11-11 22 views
2

を示すことなく、DirectorySlashを有効にする:私は私のサイトのルートに私の.htaccessファイルでこのコードをお持ちの場合は、クエリ

RewriteCond %{REQUEST_URI} ^/foo/bar/ 
RewriteRule ^foo/bar(.*)$ http://example.org/foo/?file=$1 [P,QSA] 

そして、このファイルの構造を有する:

foo 
+-- index.php 
+-- bar 
     +-- qaz 
      +-- file.txt 

をそして私はページを要求http://example.org/foo/bar/qaz/それはhttp://example.org/foo/?file=/qaz/に、サーバー上でリダイレクトします。私はページhttp://example.org/foo/bar/qazを要求した場合 しかし、それは、しかし、それはブラウザでhttp://example.org/foo/bar/qaz/?file=/qazが表示されます、http://example.org/foo/?file=/qazにリダイレクトされます。

にはどうすれDirectorySlashを有効にしますが、それでもユーザーからの問合せを非表示にするには?ディレクトリ '/ fooの/バー/ QAZ' は存在するかどう

答えて

0

DirectorySlashだけでこれを行います。

DirectorySlashはでRewriteBaseを尊重していません。あなたはそれを無効にし、これでそれを自分で行うことができます:

RewriteCond %{DOCUMENT_ROOT}/$1 -d 
RewriteRule ^(.*[^/])$ $1/ [R,L] 
関連する問題