Кокоевсёзелёное (tomilin) wrote,
Кокоевсёзелёное
tomilin

IIS wordpress cyrillic permalinks error 404

Фрагменты из переписки с Русланом Якушевым на тему неработающих на IIS 7.0 кириллических пермалинков в вордпрессе:

===

Я: Должны ли корректно обрабатываться url-и c кириллическим %postname%? В данный момент получаю 404 ошибку.

В качестве workaround можно использовать плагин к вордпрессу Cyr2Lat Slugs, например, заодно url-ы становятся читабельными. Но хочется, чтобы wordpress работал "из коробки" хоть сколько-нибудь корректно (без 404-ой ошибки), это возможно?

Р.Я.: Вы не знаете работает ли это на Unix системах? У меня есть подозрение что это может быть вызвано тем что IIS раскодирует УРЛ перед тем как сохранить его в серверной переменной REQUEST_URI, которая используется WordPress. Из за этого Wordpress пытается раскодировать раскодированный УРЛ еще раз.

Эта теория подтверждается следующим workaround. Добавьте в начале wp-config.php вот эту строку с кодом:

if ( isset($_SERVER['UNENCODED_URL']) ) {
$_SERVER['REQUEST_URI'] = $_SERVER['UNENCODED_URL'];
}

После этого должно заработать. Но url-ы в адресной строке все равно не читабельные в IE8, хотя вполне читабельные во всех остальных браузерах (Firefox, Chrome, Opera, Safari).

Я: Я проверил кириллические пермалинки в вордпрессе на нашем стандартном unix-хостинге, с FreeBSD/Apache - там они сразу работают нормально, ну разве что URL-ы в IE8 тоже нечитабельного вида.

Р.Я.: Действительно проблема в том как иис обрабатывает закодированные урлы. В иис всегда было так что урл раскодирутся в самом начале обработки запроса и все модули уже работают с раскодированным урл. Похоже что на апаче это не так.

Я не думаю что в обозримом будушем в иис будет внесено изменение по этому поводу, но можно попробовать открыть тикет в вордпресс, чтобы они использовали UNENCODED_URL на иис. Должно быть тривиальное изменение.

===

Workaround этот работает, проверено. Кто хочет завести баг разработчикам вордпресса? :-)

Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments