URL大小寫敏感之謎


URL其實就是我們瀏覽器地址欄的地址,一般由三部分組成:

  1. 協議名稱,一般就是http
  2. 域名,也就是主機名
  3. 資源路徑

如鏈接:http://www.w3school.com.cn/js/js_obj_regexp.asp

http是協議部分,www.w3school.com.cn是域名部分,/js/js_obj_regexp.asp是資源路徑部分。

  • 對於服務器來說,前兩個是大小寫不敏感的,但是一般情況下,協議名稱和域名部分如果有寫成大寫的瀏覽器會在請求的時候幫我們改成小寫的,所以服務端后台不用考慮這一點。
  • 實際上大小寫是否敏感依賴於操作系統的文件系統。
  • 至於資源路徑,對於運行在window系統上的IIS服務器對資源路徑大小寫不敏感,但是對於運行在Unix和Linux系統上的服務器Apache對資源路徑的大小寫是敏感的,如果有大小寫錯誤會返回404頁面。

大小寫不敏感示例:

如:http://www.w3school.com.cn/js/js_obj_Regexp.aSp 是可以訪問到的,而且訪問成功時地址欄的地址並沒有把大寫改成小寫的。

如果想要解決Apache大小寫敏感導致頁面訪問失敗的問題,可以有以下解決方案:

  1. 當訪問鏈接有大小寫錯誤時返回301錯誤碼並提示重定向到正確的鏈接,可以通過mod_spelling模塊實現。
  2. 使用mod_rewrite規則強制進行大寫向小寫轉換

 

另外,如果get請求后面有參數的話,key和value都是大小寫敏感的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM