2010-03-18 4 views
20

J'utilise wordpress avec ce type de permalien:Wordpress ne tient pas compte Unicode Chars dans l'URL

/% année% /% monthnum% /% postname%/

si j'utilise ce type d'url: example.com/2010/03/ तकनीक

il traite cet URL comme cet exemple.com/2010/03/ (en ignorant les caractères unicode) et affiche la liste des archives de mars 2010. Si j'utilise l'url anglais: example.com/2010/03/technology alors cela fonctionne parfaitement.

Ce problème se produit même sur la page des étiquettes: par exemple example.com/tag/ इंटरनेट est traité comme example.com/tag/ et affiche la page 404.

Pourquoi wordpress ignore-t-il les caractères Unicode?

Si j'utilise la structure querystring par défaut, cela fonctionne parfaitement même avec les caractères Unicode.

Server Info: IIS7 Win2008 Server (URL Rewriting activé) Wordpress 2.9.2

+0

Qu'est-ce que vous utilisez pour réécrire les URL? –

Répondre

4

J'exécute le serveur WAMP sur la machine locale. J'ai testé $ _SERVER ['PATH_INFO'] sur mon serveur web IIS7 et j'ai trouvé qu'il avait un problème d'Unicode. Wordpress utilise path_info pour gérer les URL. J'ai créé un test.php fichier avec le code suivant:

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

puis-je obtenir cette sortie

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

/????????/english ---- **** ---- path_info convertit les caractères hindi unicode en ?????. Cela signifie qu'il y a un problème dans la variable path_info de mon serveur. Connaissez-vous un paramètre IIS7 pouvant provoquer ce type de problème?

Le même code fonctionne parfaitement sur mon serveur Apache Windows local.

1

Le KB article fournit un correctif qui ne fonctionne pas pour ma version Windows et/ou le code à utiliser à l'aide Démarrer> Exécuter qui était également pas efficace et ne pas ajouter la clé de Registre pour une raison quelconque dans mon cas sur Windows 7 Édition Intégrale et 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 

je devais faire un des choix suivants:

1) Ajouter le Reg. sous HKEY_LOCAL_MACHINE \ System Key manuellement \ CurrentControlSet \ Services \ W3SVC \ Parameters en ajoutant une nouvelle valeur multi-chaîne >> Nom Valeur: FastCGIUtf8ServerVariables Valeur de données (deux lignes): Request_URI PATH_INFO

2) Exécuter la code en utilisant cmd.exe en tant qu'administrateur puis collez le code et exécutez

Dans les deux sens, n'oubliez pas d'exécuter la commande iisreset sur cmd.exe en tant qu'administrateur après l'étape précédente.

Questions connexes