2016-12-25 55 views
0

转义字符,我们这里有一个文件:htaccess的 - 重写不允许在URL

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但它仍然无法正常工作。在%23把,如果我绕过htaccess的不工作,用这样的实际原始目录名称:

hiddendirectory/directory/file%231.mp3 

但最终我们需要用它来我们把htaccess的假目录的工作,像这样:

fakedirectory/directory/file%231.mp3 

我想在htaccess中的东西需要调整,以便能够处理转义字符。有任何想法吗?

回答

0

明白了。显然,只需在支架中加上“B”就可以窍门

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