2016-12-25 18 views
0

でエスケープ文字を許可しない書き換え我々はここにファイルがあります:のhtaccess - URL

hiddendirectory/directory/file.mp3 

をそして、我々は、人々は最初のディレクトリの実際のディレクトリの場所を表示したくないので、私たちはにhtaccessファイルでこれを置きます

fakedirectory/directory/file.mp3 

そして、すべての作品のこと:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^fakedirectory/(.*)/(.*).mp3$ hiddendirectory/$1/$2.mp3 [NC,L] 

私たちが代わりに私たちのhtmlでこれを使用できるようになります:それは "非表示"ファイル名に "#"記号などが含まれていると、時々それが壊れることを除いて、素晴らしいものです。だから、例えば、これは404になり:

fakedirectory/directory/file#1.mp3 

私は%23#を交換しようとしましたが、それはまだ動作しません。

hiddendirectory/directory/file%231.mp3 

しかし、最終的に我々はそれがこのように、我々はhtaccessファイルに入れて、偽のディレクトリで作業する必要があります:私はhtaccessファイルをバイパスし、このような実際の元のディレクトリ名を使用している場合%23に置くと仕事をする

fakedirectory/directory/file%231.mp3 

エスケープ文字を処理できるようにhtaccessの何かを調整する必要があると思います。何か案は?

答えて

0

明らかに、ブラケットに「B」を追加するだけで、トリックが行われます。

RewriteRule ^fakedirectory/(.*)/(.*).mp3$ hiddendirectory/$1/$2.mp3 [B,NC,L]