Присоединяйтесь к сообществу профессиональных веб-мастеров PR-CY, отвечайте на вопросы коллег и задавайте свои.
Здравствуйте! У меня на всех сайтах Wordpress главная страница статистическая существует две версии site.com и site.com/ в конце «/« слэш. Подскажите пожалуйста как их в одну склеить (как я понимаю с помощью редиректа 301).
В идеале как это реализовать на Apache (.htaccess наверное желательно или php).
Поможем улучшить ваш сайт.
Да, вы правы, чтобы объединить две версии вашего сайта (с и без слэша в конце), можно использовать 301 редирект. Это можно сделать через файл .htaccess, который находится в корневой директории вашего сайта WordPress.
Вот пример конфигурации для .htaccess, который будет перенаправлять все запросы с URL, заканчивающимся на слэш, на версию без слэша:
Эти строки делают следующее:
- Включают механизм переписывания URL (mod_rewrite).
- Проверяют, что запрашиваемый файл или директория не существуют.
- Если запрос заканчивается на слэш, он перенаправляется на тот же URL без слэша с помощью 301 редиректа.
Если вы хотите сделать наоборот и перенаправить с URL без слэша на версию со слэшем, используйте следующий код:Обязательно сделайте резервную копию вашего файла .htaccess перед внесением изменений, чтобы в случае ошибки вы могли его восстановить.
После внесения изменений в .htaccess, проверьте, работает ли редирект корректно. Вы также можете использовать инструменты для проверки редиректов, такие как Redirect Checker.
Если у вас есть доступ к админке WordPress, вы также можете установить плагин для управления редиректами, такой как "Redirection", который может помочь в управлении редиректами без редактирования .htaccess.
<IfModule mod_rewrite.c>
RewriteEngine On
# Проверяем, повторяется ли слеш (//) более двух раз.
RewriteCond %{THE_REQUEST} //
# Исключаем все лишние слеши.
RewriteRule .* /$0 [R=301,L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
# Check if the slash (//) is repeated more than twice.
RewriteCond %{THE_REQUEST} //
# Eliminate all the extra slashes.
RewriteRule .* /$0 [R=301,L]
</IfModule>
Поясню, чтобы не считали, что утрирую. Решетка # комментирует строку, хоть на китайском после него пишите, это чисто комментарий, для ясности, не уж то не знали?
С критериями осторожней своими, можете карму себе испортить. Не от меня зависит, увы, будь моя воля, с вашей головы не упал бы и волосок. )))) Сударь...