2010-03-18 24 views
20

Tôi đang sử dụng wordpress với loại hình này permalink:Wordpress được bỏ qua Unicode Chars trong URL

/% năm% /% monthnum% /% postname%/

nếu tôi sử dụng loại url: example.com/2010/03/ तकनीक

nó xử lý url này như thế này example.com/2010/03/ (Bằng cách bỏ qua các ký tự unicode) và hiển thị danh sách lưu trữ tháng 3 năm 2010.

nếu tôi sử dụng url tiếng Anh: example.com/2010/03/technology thì nó hoạt động hoàn hảo.

Sự cố này xảy ra ngay cả trên thẻ trang: ví dụ example.com/tag/ इंटरनेट được coi như example.com/tag/ và hiển thị trang 404.

Tại sao wordpress bỏ qua các ký tự unicode?

Nếu tôi sử dụng cấu trúc chuỗi truy vấn mặc định thì nó hoạt động hoàn hảo ngay cả với các ký tự unicode.

máy chủ Thông tin: IIS7 Win2008 Server (URL rewriting kích hoạt) Wordpress 2.9.2

+0

Bạn đang sử dụng gì để ghi lại URL? –

Trả lời

4

Tôi đang chạy máy chủ WAMP trên máy tính cục bộ. Tôi đã thử nghiệm $ _SERVER ['PATH_INFO'] trên máy chủ web IIS7 của mình và thấy rằng nó có một số vấn đề unicode. Wordpress sử dụng path_info để xử lý các url. Tôi tạo ra một test.php tập tin với mã sau:

Nếu tôi yêu cầu http://example.com/test.php/कुछशब्द/कुछऔरशब्द/english

sau đó tôi nhận được kết quả này

---- **** ----

/???????/??????????????????? Tiếng Anh ---- **** ---- path_info đang chuyển đổi các ký tự Unicode unicode thành ?????. Điều đó có nghĩa là có một số vấn đề trong biến path_info trong máy chủ của tôi. Bạn có biết bất kỳ thiết lập IIS7 nào có thể gây ra vấn đề như vậy không?

Cùng một mã hoạt động hoàn toàn tốt trên máy chủ Apache Windows cục bộ của tôi.

9

Đối với một cái nhìn tổng quan của vấn đề, xem xét lại:

http://ruslany.net/2010/03/important-update-for-iis-7-0-fastcgi-module/

này ám chỉ bạn bây giờ đã lỗi thời:

http://ruslany.net/2010/02/fastcgi-module-differences-across-iis-versions/

tình hình riêng của tôi đã được cố định bằng cách áp dụng Win 7 SP1 nhưng , thú vị, tôi vẫn còn lại với việc áp dụng đăng ký hack được mô tả trong Hotfix:

http://support.microsoft.com/kb/2277918

1

Các KB article cung cấp một hotfix mà không làm việc cho phiên bản cửa sổ của tôi và/hoặc mã để sử dụng sử dụng Start> Run mà cũng không hiệu quả và không thêm khóa registry đối với một số lý do tại trường hợp của tôi trên Windows 7 Ultimate và IIS 7.5.7600

reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\Parameters /v FastCGIUtf8ServerVariables /t REG_MULTI_SZ /d REQUEST_URI\0PATH_INFO 

tôi phải làm một trong những lựa chọn sau:

1) Thêm Reg. Khóa theo cách thủ dưới HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ W3SVC \ Parameters bằng cách thêm giá trị mới Multi-chuỗi >> Value Name: FastCGIUtf8ServerVariables Value Data (hai dòng): REQUEST_URI PATH_INFO

2) Thực hiện các sử dụng cmd.exe làm quản trị viên rồi dán mã và thực hiện

Bằng cả hai cách, hãy nhớ thực thi lệnh iisreset trên cmd.exe với tư cách quản trị viên sau bước trước đó.

Các vấn đề liên quan