![](/img/trans.png)
[英].htaccess - How to redirect uppercase and accented letters to unaccented lowercase in url?
[英]Ignore uppercase or lowercase letters in .htaccess files
我在 Hostinger.com“PHP7.4”托管,我將其用作下載文件服務器。 fastdl 類型。 但是,某些文件的名稱中混有大寫字母,例如:
http://example.com.br/fouder/Emote_Dino_Complete.mp3.bz2
只有我用來搜索文件的程序有時會用小寫字母搜索:
http://example.com.br/fouder/emote_dino_complete.mp3.bz2
並且不下載。
只是更改文件的名稱很簡單,但是有很多。 我在.htaccess
中嘗試了幾種配置但沒有成功。 誰有什么想法,我記得我幾年前做過,但我不記得是怎么做的。
.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
rewritemap lowercase int:tolower
RewriteCond $1 [A-Z]
RewriteRule ^/(.*)$ /${lowercase:$1} [R=301,L]
CheckSpelling on
</IfModule>
RewriteEngine on rewritemap lowercase int:tolower RewriteCond $1 [AZ] RewriteRule ^/(.*)$ /${lowercase:$1} [R=301,L]
RewriteMap
不能在.htaccess
中定義,所以這個“應該”導致 500 Internal Server Error。 但是,將請求的 URL 轉換為小寫不會幫助您,因為您需要將其轉換為與基礎文件(“未知”)相同的“駝峰式”。
mod_speling(一個“l”)確實是您唯一的選擇(除了重命名所有文件)——前提是它已安裝在您的服務器上。 但是,您已經(試圖)在您發布的配置文件中啟用此功能(盡管目前,您的文件完全無效)。
你只需要:
CheckSpelling On
CheckCaseOnly On
應該使用CheckCaseOnly
指令來避免 mod_speling 糾正其他“拼寫錯誤”。
參考:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.