Клиент только что создал сообщение с очень длинным слагом (90 символов), без специальных символов (кроме дефисов) и т. Д.
При каждом нажатии на ссылку на этот пост, в том числе ссылки «Просмотр» или «Просмотр этого поста» от администратора, генерировалось 404.
Как только мы урезали слизняк вручную, все заработало как положено. Это «особенность» или «ошибка»?
РЕДАКТИРОВАТЬ: Примечание для всех тех, кто говорит об ограничениях БД.
Если бы я достиг предела поля БД, то сам слаг был бы обрезан. Подумай об этом на секунду. В случае большинства установок WP, wp_posts.post_name - это VARCHAR (200). Итак, допустим, что кто-то печатает заголовок с> 200 символами. Что происходит? Слаг будет усечен до 200 символов и сохранен в wp_posts.post_name. Это не значит, что кто-то входит и печатает полный заголовок поста в адресной строке браузера, заменяя пробелы черточками, верно? URL генерируется WordPress, он получает URL из таблицы wp_posts.post_name и просто помещает его в атрибут href тега привязки. Так что там не будет различий. Вся вещь БД - красная сельдь.
В любом случае рассматриваемый слаг составляет всего 90 символов, поэтому он не имеет никакого отношения к ограничениям БД.
Есть ли какие-либо известные ограничения по переписыванию?
Ответы:
Благодаря структуре таблицы wp_posts длина столбца post_name (столбца для слагов) равна 200 символам.
источник
Я полагаю, что сам по себе он не имеет ограничения, но свойство поля в базе данных для слагов может быть установлено на максимальную длину.
Так что проверяйте базу данных!
источник
Возможно, проблема даже не была связана напрямую с WordPress / базой данных ...
Но длина URL превышала 255 символов (и не все веб-браузеры так делают).
То, что произошло здесь, могло быть URL длиной более 255 символов, который был обрезан адресной строкой браузера при его открытии ... что вызвало получение неверной постоянной ссылки ... что привело к 4o4.
Поэтому предполагается, что максимальная длина пули может быть:
255 - длина (протокол + полное доменное имя + структура постоянной ссылки) ...
Но это не может быть длиннее 200 символов ...
Даже если что-то еще могло послужить причиной 4o4 в этом конкретном случае.
Это мог быть персонаж, который также не был должным образом закодирован url_encoded, причины для 4o4 довольно бесконечны ... когда-либо считалось плохим кластером на жестком диске или неисправным модулем памяти? :)
источник