
我將網站從一台伺服器移至另一台伺服器,並遇到了西里爾文檔案名稱問題。 WordPress 中的一些西里爾字母 URL 很好,但有些現在已經損壞了。在之前的伺服器上是沒問題的。
它看起來像這樣:在 WordPress 圖像庫中,我看到一個圖像已損壞,其 URL:/wp-content/uploads/2013/11/олимпийские-новогодние-шары.jpg
(URL 編碼版本/wp-content/uploads/2013/11/%D0%BE%D0%BB%D0%B8%D0%BC%D0%BF%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B5-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE%D0%B4%D0%BD%D0%B8%D0%B5-%D1%88%D0%B0%D1%80%D1%8B.jpg
:)
我導航到此 URL 並看到 404 錯誤。
然後我轉到 FTP,從那裡複製檔案名稱 ( олимпийские-новогодние-шары.jpg
) 並導航到 URL/wp-content/uploads/2013/11/олимпийские-новогодние-шары.jpg
(URL 編碼版本/wp-content/uploads/2013/11/%D0%BE%D0%BB%D0%B8%D0%BC%D0%BF%D0%B8%D0%B8%CC%86%D1%81%D0%BA%D0%B8%D0%B5-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE%D0%B4%D0%BD%D0%B8%D0%B5-%D1%88%D0%B0%D1%80%D1%8B.jpg
:)
現在可以了!
再次:
олимпийские-новогодние-шары.jpg
- 破碎的олимпийские-новогодние-шары.jpg
- 有效。
看起來完全一樣。複製並貼上上面的網址進行檢查!
如果我使用工作文件名(從 FTP 或 SSH 複製)的 URL 並從鍵盤逐個字母替換西里爾文文件名,則一切正常(200 OK),直到我將й
(從 FTP 複製)更改為й
- 從鍵盤輸入/從WordPress 複製。
這絕對讓我大吃一驚!外觀相同的字母在一種情況下有效,但在另一種情況下無效。為什麼而й
不是另一個西里爾字母,例如ш
or д
?從鍵盤替換這些字母(從 FTP 複製的檔案名稱中)不會產生 404 錯誤。
如果我們仔細觀察,URL 編碼的版本並不完全相同:
%D0%BE%D0%BB%D0%B8%D0%BC%D0%BF%D0%B8%D0%B8%CC%86%...
%D0%BE%D0%BB%D0%B8%D0%BC%D0%BF%D0%B8%D0%B9%D1%81%...
但我為什麼以及如何影響它呢?