Использование постоянных ссылок

Постоянные ссылки — это постоянные URL-адреса ваших отдельных записей в блогах, а также рубрик и т.д.. Постоянная ссылка — это то, что другой веб-блогер будет использовать для ссылки на вашу запись (или раздел), или то, как вы можете отправить ссылку на вашу историю в сообщении электронной почты. URL-адрес каждого сообщения должен быть постоянным и никогда не меняться — отсюда и постоянная ссылка.

Типы постоянных ссылок

Существует три основных типа постоянных ссылок WordPress:

Наверх ↑

По умолчанию: «простой».

По умолчанию выглядит так

http://example.com/?p=N

где N — номер ID записи. Он работает во всех серверных средах, но выглядит не так хорошо, как некоторые другие варианты.

Наверх ↑

mod_rewrite: “красивые постоянные ссылки”

Используя mod_rewrite или lighttpd, можно создавать более удобные постоянные ссылки (см. ЧПУ). Существует много разных форматов, но самый распространенный и универсальный выглядит так:

http://example.com/2020/post-name/

или

http://example.com/2020/10/30/post-name

Удобные постоянные ссылки работают под:

  • Веб-сервер Apache с модулем mod_rewrite
  • Nginx с использованием директивы «try-files», например согласно этой инструкции
  • Веб-сервер Hiawatha с включенной поддержкой UrlToolkit.
  • Lighttpd используя a 404 handler или mod_rewrite
  • Caddy с использованием перезаписи, например согласно этой инструкции

Наверх ↑

PATHINFO: «почти красиво»

Постоянные ссылки PATHINFO очень похожи на постоянные ссылки mod_rewrite, но с одним исключением: перед ними вставлен /index.php, например:

http://example.com/index.php/yyyy/mm/dd/post-name/

В остальном они такие же, как «красивые» постоянные ссылки mod_rewrite, и обладают такой же гибкостью. Все, что могут делать ссылки через mod_rewrite, могут делать постоянные ссылки PATHINFO с помощью /index.php.

Наверх ↑

Выбор структуры постоянных ссылок

В разделе «Настройки» → «Постоянные ссылки» вы можете выбрать одну из наиболее распространенных структур постоянных ссылок или ввести свою собственную в поле «Произвольно» с помощью тегов структуры.

Обратите внимание: вы не указываете URL своего сайта в полях постоянных ссылок. Вы используете только один из структурных тегов или их комбинацию.

Чтобы активировать постоянные ссылки PATHINFO, начните свою структуру постоянных ссылок с index.php/.

Наверх ↑

Теги структуры

Вы можете использовать эти теги для настройки ваших постоянных ссылок ЧПУ или «Почти красиво». Несколько советов:

  • Вы не указываете URL своего сайта в полях постоянных ссылок. Вы используете только один из структурных тегов или их комбинацию.
  • Обязательно завершите свою структуру либо %post_id% или %postname% (например /%year%/%monthnum%/%day%/%postname%/) чтобы каждая постоянная ссылка указывала на отдельное сообщение.

%year%
Год публикации, четыре цифры, например 2020

%monthnum%
Месяц года, например 05

%day%
День месяца, например 28

%hour%
Час дня, например 15

%minute%
Минута часа, например 43

%second%
Секунда минуты, например 33

%post_id%
Уникальный ID # сообщения, например 423

%postname%
Отредактированная версия заголовка сообщения (ярлык записи поле на панели редактирования записи/страницы). Итак, «Это отличный пост!» превращается в это-отличный-пост в URI.

%category%
Отредактированная версия названия категории (ярлык категории поле на панели Создать/Изменить категорию). Вложенные подкатегории отображаются в URI как вложенные каталоги.

%author%
Отредактированная версия имени автора.

Наверх ↑

База рубрик и меток

База рубрик и База меток — это префиксы, используемые в URL-адресах для архивов рубрик и меток, которые выглядят следующим образом:

 example.net/wp/category_base/category_name
 example.net/wp/tag_base/tag_name

Значения по умолчанию для них — рубрика (category) и метка (tag). Вы можете изменить их, но не можете полностью удалить их из URL-адресов.

Пользовательские постоянные ссылки работают в большинстве систем без проблем, но все же есть условия, при которых возникают проблемы.

Наверх ↑

Использование %category% с несколькими рубриками в сообщении

Когда вы назначаете публикации несколько рубрик, в постоянной ссылке может отображаться только одна. Рубрики расположены в алфавитном порядке. В каждой группе подрубрик порядок также будет алфавитным. (см. Управление рубриками ). Запись будет по-прежнему доступна для всех рубрик в обычном режиме.

Наверх ↑

Использование «красивых» постоянных ссылок

Требования:

  • Веб-сервер Apache с установленным модулем mod_rewrite
  • В домашнем каталоге WordPress
    • Параметр FollowSymLinks включен
    • Директивы FileInfo разрешены (например AllowOverride FileInfo или AllowOverride All)
    • .htaccess файл (если этот файл отсутствует, WordPress попытается создать его, когда вы активируете «красивые» постоянные ссылки, для этого у него должна быть возможность записи в каталог)
    • Если вы хотите, чтобы WordPress обновлял файл .htaccess автоматически, WordPress также потребуется право записи в файл.
  • Для nginx добавьте следующий блок местоположения в блок сервера:
location / {
try_files $uri $uri/ /index.php?$args;
}
  • For Hiawatha используйте следующее правило UrlToolkit:
UrlToolkit {
ToolkitID = wordpress
RequestURI exists Return
Match .*\?(.*) Rewrite /index.php?$1
Match .* Rewrite /index.php
}
  • Пользователи Mac, использующие локально WordPress, должны изменить свой файл httpd.conf, отредактировав строку AllowOverride, чтобы прочитать инструкции хоста AllowOverride All в каталоге «/Library/WebServer/Documents». Для Mac OS X 10.5.x и выше этот файл находится в /private/etc/apache2/users/[ваше-имя-пользователя].conf, в противном случае он находится в /etc/httpd/httpd.conf.

Когда вы создаете или обновляете «красивую» структуру постоянных ссылок, WordPress сгенерирует правила перезаписи и попытается вставить их в соответствующий файл .htaccess. Если это не доступно, он скажет что-то вроде «Вам следует обновить свой .htaccess сейчас» и покажет правила, которые вы должны скопировать и вставить в файл (поместите их в конце).

Вероятно, вам нужно будет сделать это только один раз, потому что WordPress выполняет внутреннюю перезапись. Если вы когда-нибудь переместите свой домашний каталог WordPress (адрес сайта), вам придется повторить этот шаг.

WordPress отлично работает с существующим .htaccess и не удаляет существующие правила RewriteRules или другие директивы. Если у вас есть другие правила mod_rewrite, поместите свои перед правилами WordPress (перед # BEGIN WordPress ).

Наверх ↑

Где мой файл .htaccess?

Файлы WordPress index.php и .htaccess должны находиться вместе в каталоге, указанном настройкой адреса сайта (URL) на странице общих параметров. Поскольку имя файла начинается с точки, файл может быть не виден через FTP-клиент, если вы не измените настройки клиента FTP для отображения всех файлов, включая скрытые. Некоторые сервера (например, Godaddy) могут не отображать или не разрешать вам редактировать .htaccess, если вы устанавливаете WordPress через установку Godaddy Hosting Connection.

Наверх ↑

Создание и редактирование .htaccess

Если у вас еще нет файла .htaccess, создайте его. Если у вас есть доступ к серверу через панель управления или ssh, простая команда touch .htaccess создаст файл. Если вы используете FTP для передачи файлов, создайте файл на своем локальном компьютере, назовите его 1.htaccess, загрузите его в корень папки WordPress, а затем переименуйте его в .htaccess.

Вы можете редактировать файл .htaccess с помощью FTP, ssh или (возможно) панель управления вашего хостинга.

Следующий код перезаписи постоянной ссылки должен быть включен в ваш файл .htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Если ваш файл .htaccess содержит ошибки, которые приводят к остановке вашего сайта («Внутренняя ошибка сервера (500)»), вам нужно будет использовать FTP или панель управления вашего хостинга, чтобы удалить неправильный файл .htaccess.

Наверх ↑

Автоматическое обновление .htaccess

Если WordPress не может обновить ваш файл .htaccess автоматически, он сообщит вам что-то вроде того, что если ваш файл .htaccess был бы доступен для записи, мы могли бы сделать это автоматически, но это не так… в нижней части экрана «Настройки» → «Постоянные ссылки».

Если вы хотите, чтобы WordPress делал это, вам нужно предоставить WordPress доступ на запись к файлу .htaccess. Точные необходимые разрешения зависят от настроек вашего сервера. Попробуйте добавить права на запись для владельца, затем для группы, затем для всех, проверяя после каждого изменения; после того, как WordPress успешно отредактировал файл, не добавляйте никаких дополнительных разрешений на запись.

После применения постоянных ссылок вы должны изменить разрешения на что-то более сильное, например 664 или 644, чтобы другие пользователи на сервере не могли получить к нему доступ.

Наверх ↑

Устранение проблем с постоянными ссылками

Наверх ↑

Устранение проблем с генерацией .htaccess

Если ваша установка WordPress не создает файл .htaccess или не записывает новые правила в ваш существующий файл .htaccess, то это может быть вызвано несколькими причинами. Попробуйте шаг за шагом и переходите к следующему шагу, только если предыдущий шаг не сработал.

  1. Изменить права доступа к файлу: Вы можете изменить права файла .htaccess на 666, чтобы отредактировать его с помощью панели управления хостингом или FTP, но это не рекомендуется по соображению безопасности.
  2. Различные сборки Apache: Некоторые сборки Apache (например XAMPP, WAMP и возможно другие сборки для Windows) не включают mod_rewrite по умолчанию (хотя он собран в Apache). Чтобы включить его и, таким образом, позволить WordPress записать файл .htaccess, необходимый для создания красивых постоянных ссылок, вы должны открыть apache/conf/httpd.conf и раскомментировать строку LoadModule rewrite_module modules/mod_rewrite.so (т.е. удалить знак решетки в начале строки), после чего перезапустить программу веб-сервера.
  3. Для некоторых сборок Apache также следует перепроверить, что для каталога где установлен WordPress в конфигурации вебсервера разрешено переопределение параметров конфигурации пользователем директивой AllowOverride All .

Наверх ↑

Советы и хитрости

Наверх ↑

Избегайте интерпретации как архивной ссылки

Обратите внимание, что даже если человек никогда не будет делать более одного сообщения в день и поэтому хочет использовать, например,%year%%monthnum%%day%, сгенерированные таким образом ссылки будут интерпретироваться как архив всех сообщений за этот день. Чтобы настроить цель на отдельную публикацию, требуется как минимум %year%%monthnum%%day%%hour%.

Наверх ↑

Проверить структуру постоянных ссылок

Способ проверить, есть ли в блоге структура постоянных ссылок:

<?php if ( get_option('permalink_structure') ) { echo 'permalinks enabled'; } ?>

Наверх ↑

Смотрите также