簡體   English   中英

忽略 .htaccess 文件中的大寫或小寫字母

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM