2015-12-01 1 views
2

Я столкнулся с этим (для меня) неподобающим поведением в Wordpress.Как Wordpress обрабатывает URL-адреса?

Рассмотрите случайный сайт, используя WordPress со страницей пример без содержания. Это просто сообщение типа страницы, а не категория, тег или иерархия. 404 ошибка срабатывает, если я добавляю символы после последнего «/»:

http://example.com/example/abc

Я ожидаю, что, но если я только цифры после последнего «/» нет ошибки 404 срабатывает. Например, загрузка:

http://example.com/example/1123456

заставляет меня например страницы и номера сохраняются в URL. В этом случае цифры не имеют особого значения. Там может быть любой нубер, но я ожидаю, что он вызовет 404, как на других сайтах.

Добавление номеров к URL-адресу на страницах индекса или категории, по-видимому, вызывает 404, но не на должностях и страницах.

Мне интересно, что это настоящая особенность WordPress, и если да, то в чем его цель?

+0

Что такое 'EXTRA_CHARACTERS'? Page/Post/Категория? –

+0

@HelpingHands На самом деле это просто персонажи. Поэтому, если я набираю символы после страницы slug/name в url, я получаю 404, но если я набираю числа, я получаю направленную на фактическую страницу с номерами, оставшимися в URL – PeterTheLobster

+0

, что номер является идентификатором страницы/сообщения? –

ответ

2

Это такое же устройство. Wordpress соответствует URL-адресу через встроенный модуль перезаписи. Вы можете прочитать об этом here. Кроме того, исходный код для отслеживания того, что происходит с этим процессом, находится в wp-content/class-wp-rewrite.php.

Конкретная строка, которая обеспечивает поведение, которое вы видите, находится ниже.

[(.?.+?)(?:/([0-9]+))?/?$] => index.php?pagename=$matches[1]&page=$matches[2] 

Этот код будет соответствовать на странице/после имени и любом следующем номере (это поддерживает разбиение на страницы). Однако после имени сообщения он не будет соответствовать несимволам. Интересно то, что даже если сообщение не имеет указанной страницы, оно все равно будет считаться законным.

1

Да, это было бы странно, но, возможно, по дизайну.

http://ww.example.com/mypage/200 (ожидаемый)

http://ww.example.com/mypage/idontexist404 (ожидаемый)

Но:

http://ww.example.com/mypage/0000200 (неожиданный)

Я думаю, что это, возможно, придется сделать с тем, как WP работает с идентификаторами архива и датами как par t структуры/перезаписи константы.

1

Как все мы знали, что WordPress работает через встроенный модуль перезаписи. Таким образом, он также предоставит вам функцию Permalinks для всего вашего сообщения, с помощью которого вы сможете установить свои постоянные ссылки. Давайте рассмотрим детали здесь о Permalinks через блог на основе WordPress. Здесь мы перейдем по ссылке http://codex.wordpress.org/Introduction_to_Blogging#Pretty_Permalinks

Если вы хотите изменить структуру своего URL-адреса, вам необходимо отредактировать этот файл.

$permalink_structure 

Структура permalink как в базе данных. Это то, что вы установили на странице параметров постоянной связи, и включает в себя: 'tags' like %year%, %month% and %post_id%.

Для получения дополнительной информации о структуре постоянной ссылки вы можете перейти по этой ссылке. http://codex.wordpress.org/Class_Reference/WP_Rewrite