Вопрос или проблема
У меня есть существующий сайт, который я сейчас пытаюсь защитить, но у меня возникают проблемы с заголовком и подвалом на страницах, доступ к которым осуществляется через пользовательские ссылки в меню. Когда я пытаюсь получить доступ к пользовательской ссылке (например, http://mywebsite.com/SomeNonWordPressComponent), контент загружается, но заголовок и подвал отображаются как:
Перемещено навсегда Документ был перемещен сюда (https://localhost/common/header.php).
Заголовок и подвал на обычных страницах WordPress отображаются вполне нормально.
Что мне нужно изменить, чтобы заголовок и подвал отображались правильно для пользовательских страниц?
Что я уже пробовал:
- установить
WP_HOME
иWP_SITEURL
с префиксомhttps
. - нажать кнопку “Сохранить изменения” на странице ПЧП.
- вручную добавить в .htaccess корневого каталога WordPress это дополнительное правило перезаписи:
RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
По-прежнему получаю перенаправление (как выше) для заголовка и подвала.
Также: путь common/header.php
на самом деле существует на уровень выше корневого каталога WordPress. Пробовал создать символическую ссылку в WordPress на /path/to/webroot/common
, но это тоже не сработало.
Перейдите в панель управления WordPress и выберите Настройки >> Общие
, затем измените Адрес WordPress (URL)
и Адрес сайта (URL)
с HTTP на HTTPS. Затем нажмите кнопку Сохранить изменения
.
Если ваша проблема еще не решена, перейдите в Настройки >> Постоянные ссылки
и снова нажмите кнопку Сохранить изменения
. Это заново сгенерирует ваш файл .htaccess
. Иногда .htaccess
вызывает некоторые необычные проблемы. Я просто хочу убедиться, что с ним все в порядке.
Ответ или решение
Проблема, с которой вы столкнулись, заключается в том, что заголовок и футер вашего сайта не загружаются должным образом при доступе к пользовательским ссылкам, использующим протокол SSL (HTTPS). Это может быть вызвано несколькими факторами, и ниже перечислены шаги, которые вам нужно предпринять для решения этой проблемы.
1. Настройка WP_HOME и WP_SITEURL
Первое, что необходимо сделать, — это убедиться, что параметры WP_HOME
и WP_SITEURL
установлены правильно. Вам необходимо задать их значения, начинающиеся с https://
, как вы уже это делали. Убедитесь, что в вашем файле wp-config.php
они выглядят так:
define('WP_HOME', 'https://yourwebsite.com');
define('WP_SITEURL', 'https://yourwebsite.com');
2. Проверка настроек в Панели управления WordPress
Перейдите в админку вашего WordPress и выполните следующие действия:
- Настройки → Общие:
Убедитесь, что адрес WordPress (URL) и адрес сайта (URL) начинаются сhttps://
. Если вы внесли изменения, не забудьте нажать кнопку "Сохранить изменения".
3. Правила перезаписи (Rewrite Rules)
Вы уже добавили правило в файл .htaccess
, чтобы обеспечить перенаправление трафика с HTTP на HTTPS. Убедитесь, что файл .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]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# END WordPress
4. Проверка путей заголовка и футера
Убедитесь, что пути к файлам header.php
и footer.php
корректны. Поскольку эти файлы находятся выше корневого каталога WordPress, может потребоваться добавить абсолютный путь к ним в код шаблона. Обратите внимание, что WordPress не может обращаться к файлам вне своего каталога без дополнительной настройки. Рекомендуется переместить файлы в каталог вашей темы или создать плагин, который будет подключать нужные файлы.
5. Работа с пользовательскими ссылками
Убедитесь, что все ссылки в меню ведут на правильный URL-адрес. Возможно, некоторые из них ссылаются на протокол HTTP и вызывают проблемы. Если вам нужно, чтобы эти ссылки также перенаправлялись на HTTPS, можете добавить правило в .htaccess
для принудительного HTTPS:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
6. Дебаг
Если после всех вышеуказанных шагов проблема все еще не устранена, рекомендуется включить дебаг в WordPress. Добавьте следующие строки в ваш файл wp-config.php
:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
После этого проверьте файл debug.log
в каталоге /wp-content/
, чтобы выявить возможные ошибки.
Заключение
Решение проблемы с неправильной загрузкой заголовка и футера на вашем сайте, работающем по HTTPS, требует тщательной проверки настроек URL, правильного управления путями к файлам и актуальности правил перезаписи. Уделяя внимание каждому из этих аспектов, вы сможете устранить проблемы, связанные с интеграцией и отображением пользовательских страниц на вашем сайте WordPress.