Вопрос или проблема
У меня несколько категорий постов:
Общее
Новости
Комедия
Конкурсы
Культура
Игры
Еда
и т.д.
URL постов в следующем формате:
www.mydomain.com/имя-категории/название-поста
Пример:
www.mydomain.com/еда/как-сделать-паэлью
www.mydomain.com/игры/игра-дня
Но я хотел бы скрыть в URL имя категории ‘общее’, например.
вместо
www.mydomain.com/общее/как-выучить-испанский
иметь
www.mydomain.com/как-выучить-испанский
Я пытался настроить правило перезаписи в .htaccess, но это не работает.
Есть идеи, как это сделать?
Спасибо!
Вы можете использовать имя поста в настройках постоянных ссылок. А для базовой категории и базового тега оставьте пустым.
Надеюсь, это поможет.
Вы пробовали следующее правило перезаписи в вашем .htaccess?
RewriteRule ^category/(.+)$ http://YOUR_SITE_NAME/$1 [R=301,L]
Чтобы достичь желаемой структуры URL, где имя категории скрыто для категории “Общее”, вы можете использовать следующие правила .htaccess
:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Исключить категорию 'общее' из URL
RewriteCond %{REQUEST_URI} !^/общее/
# Перезаписать URL для постов в других категориях
RewriteRule ^([^/]+)/([^/]+)$ /$1/$2 [L]
# Перезаписать URL для постов в категории 'общее'
RewriteRule ^([^/]+)$ /общее/$1 [L]
</IfModule>
Ответ или решение
Для того чтобы скрыть название категории «General» из URL-адреса на вашем сайте, можно использовать директивы в файле .htaccess
. Данная задача предполагает редирект с адреса, содержащего категорию, на адрес, в котором категория полностью отсутствует. Рассмотрим, как это сделать пошагово.
Шаг 1: Редактирование файла .htaccess
-
Доступ к файлу .htaccess: Убедитесь, что вы имеете доступ к корневой директории вашего веб-сайта и вы можете редактировать файл
.htaccess
. Этот файл обычно находится в корне вашего веб-сервера. -
Создание резервной копии: Перед внесением изменений обязательно создайте резервную копию текущего файла
.htaccess
. Это поможет вам избежать потери работоспособности сайта в случае, если что-то пойдет не так.
Шаг 2: Добавление правил перезаписи
Для скрытия категории «General» добавьте следующие строки в ваш файл .htaccess
:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Исключаем 'general' из URL
RewriteCond %{REQUEST_URI} ^/general/
# Перенаправляем запросы на 'general' на корень сайта
RewriteRule ^general/(.+)$ /$1 [R=301,L]
# Перезапись остальных URL
RewriteRule ^([^/]+)/([^/]+)$ /$1/$2 [L]
</IfModule>
Пояснение к правилам:
- RewriteEngine On: Включает механизм перезаписи URL.
- RewriteBase /: Указывает базовый путь для перезаписи.
- RewriteCond %{REQUEST_URI} ^/general/: Условие, по которому будет выполнено следующее правило, если URL начинается с
/general/
. - RewriteRule ^general/(.+)$ /$1 [R=301,L]: Перенаправляет все запросы к категории «General» на корень сайта с удалением категории. Использование флага
R=301
указывает на постоянный редирект. - RewriteRule ^([^/]+)/([^/]+)$ /$1/$2 [L]: Обрабатывает другие URL, обеспечивая их корректное выполнение.
Шаг 3: Проверка изменений
После редактирования .htaccess
проверьте следующие URL:
-
Основной URL для категории «General»:
www.mydomain.com/general/how-to-learn-spanish
Должен автоматически перенаправляться на:
www.mydomain.com/how-to-learn-spanish -
URL для других категорий (например, Food, Gaming) также должен работать корректно:
www.mydomain.com/food/how-to-make-paella
Должен оставаться доступным как есть.
Шаг 4: SEO-оптимизация
Постоянные редиректы (301) полезны для SEO, так как они информируют поисковые системы о том, что контент перемещен на новый адрес, и передают часть накопленной «наследственной» ценности страницы (PageRank).
Обратите внимание: изменения в .htaccess могут влиять на работу вашего сайта, поэтому обязательно протестируйте все URL и проверьте, как они отображаются в инструментах для вебмастеров.
Заключение
Используя приведенные выше шаги, вы можете успешно скрыть категорию «General» из URL-адресов вашего сайта. Это не только упростит структуру ваших URL, но также может положительно сказаться на пользовательском опыте и поисковой оптимизации. Если у вас есть дополнительные вопросы или требуются дальнейшие уточнения, не стесняйтесь обращаться.