我们在这里有一个文件:
hiddendirectory/directory/file.mp3
我们不希望别人看到第一个目录的实际目录位置,因此我们将其放入htaccess中以隐藏"它:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^fakedirectory/(.*)/(.*).mp3$ hiddendirectory/$1/$2.mp3 [NC,L]
这允许我们在我们的html中使用它:
fakedirectory/directory/file.mp3
这一切都很有效,除非文件名中包含"#"符号或类似。例如,这导致404:
fakedirectory/directory/file#1.mp3
我尝试用#
替换%23
,但它仍然无法正常工作。如果我绕过htaccess并使用这样的实际原始目录名,则放入%23
DOES工作:
hiddendirectory/directory/file%231.mp3
但最终我们需要它来处理我们放在htaccess中的虚假目录,如下所示:
fakedirectory/directory/file%231.mp3
我猜htaccess中的某些东西需要调整才能处理转义字符。有什么想法吗?
答案 0 :(得分:1)
知道了。显然只是添加" B"支架就是技巧
RewriteRule ^fakedirectory/(.*)/(.*).mp3$ hiddendirectory/$1/$2.mp3 [B,NC,L]