2010-03-18 14 views
20

estoy usando WordPress con este tipo de enlace permanente:Wordpress está ignorando Unicode Caracteres de URL

/% años% /% monthnum% /% postname%/

si uso este tipo de url: example.com/2010/03/ 12

trata esta url como este example.com/2010/03/ (ignorando los caracteres Unicode) y muestra la lista de archivos de marzo de 2010.

si uso la url en inglés: ejemplo.com/2010/03/technology entonces funciona perfectamente.

Este problema ocurre incluso en la página de etiquetas: por ejemplo example.com/tag/ इंटरनेट se trata como example.com/tag/ y muestra la página 404.

¿Por qué wordpress está ignorando los caracteres unicode?

Si uso la estructura querystring predeterminada, funciona perfectamente incluso con caracteres Unicode.

del Server: IIS7 Win2008 Server (reescritura de URL está habilitado) Wordpress 2.9.2

+0

¿Qué está utilizando para volver a escribir las URL? –

Respuesta

4

Me postulo servidor WAMP en la máquina local. Probé $ _SERVER ['PATH_INFO'] en mi servidor web IIS7 y encontré que tiene algún problema de Unicode. Wordpress usa path_info para manejar urls. he creado un archivo test.php con el siguiente código:

Si solicito http://example.com/test.php/कुछशब्द/कुछऔरशब्द/english

en cuando me siento esta salida

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

/???????/?????????/english ---- **** ---- path_info está convirtiendo caracteres hindi unicode en ?????. Eso significa que hay algún problema en la variable path_info en mi servidor. ¿Conoces alguna configuración de IIS7 que pueda causar ese tipo de problema?

El mismo código funciona perfectamente bien en mi servidor Apache Windows local.

1

El KB article proporciona una revisión que no funcionaba para mi versión de las ventanas y/o código para utilizar el uso de Inicio> Ejecutar que tampoco fue efectivo y no añadir la clave de registro por alguna razón en en mi caso Windows 7 Ultimate y 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 

que tenía que hacer una de las siguientes opciones:

1) Añadir el reg. Introducir manualmente en HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ W3SVC \ Parameters mediante la adición de nuevo valor de cadena múltiple >> Valor Nombre: FastCGIUtf8ServerVariables Valor de datos (dos líneas): REQUEST_URI PATH_INFO

2) Ejecutar el código usando cmd.exe como administrador luego pegue el código y ejecute

En ambos sentidos, recuerde ejecutar el comando iisreset en cmd.exe como administrador después del paso anterior.