Вопрос или проблема
У нас есть сайт в разработке, который работает отлично на локальном сервере, однако при загрузке на наш сервер с использованием настроек постоянных ссылок %postname% правильные URL-адреса отображаются в меню, но на всех страницах, кроме главной, не выводится URL темы WP.
Например: http://distinctivepeople.co.uk/wp/ работает нормально,
http://distinctivepeople.co.uk/wp/who-we-are/ не выводит директорию темы, в результате чего отображается неформатированный HTML.
Это работает нормально с настройками по умолчанию p?=123 и т.д., но нам нужны правильные URL-адреса.
Сайт размещен на 123-reg, которые не считают, что проблема на сервере – ранее подобное происходило, если сервер не читает .htaccess, но мне сказали, что это не так.
Буду признателен за любую помощь!
Это было решено с помощью @AndyMacaulay-Brook.
В htaccess были некоторые неверные (не WP-декларации), которые, когда были удалены, решили проблему:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>
# END WordPress
Удаление всего, что находится вне деклараций WP, исправило проблему.
Ответ или решение
Вопрос, с которым вы столкнулись, касается функциональности WordPress и настройки постоянных ссылок, что может создать трудности при миграции сайта на сервер. Давайте подробно рассмотрим Вашу ситуацию и пути ее решения, сосредоточив внимание на правильной конфигурации .htaccess и настройках пермалинков.
Проблема
Вы отметили, что сайт корректно работает локально, но после загрузки на сервер с непривычными настройками постоянных ссылок (%postname%) страницы, кроме главной, не выводят URL темы, из-за чего возникает проблема с отображением стилей и функциональности сайта. Подобная ситуация часто связана с неверной настройкой Rewrite правил в файле .htaccess, что мешает правильной обработке запросов сервером.
Анализ .htaccess
Файл .htaccess — это конфигурационный файл, который позволяет управлять настройками веб-сервера Apache, включая управление URL-адресами и правилами перенаправления. Судя по вашему коду .htaccess, есть риск, что неправильные директивы могут вмешиваться в стандартную работу WordPress.
Во-первых, рассмотрим ваш файл .htaccess. Ваша конфигурация включает несколько нестандартных правил, которые потенциально могут конфликтовать с настройками 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>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>
# END WordPress
Решение проблемы
По вашему описанию проблемы и последующему решению, сильным доказательством считается то, что удаление лишних записей из .htaccess помогло устранить проблему. Правильная структура .htaccess должна учитывать только водные WordPress и их правила. Я рекомендую вам использовать следующую конфигурацию:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>
# END WordPress
После удаления неправильных директив ваша проблема с отсутствием темы у страниц была успешно решена. Убедитесь, что файл .htaccess располагается в корневом каталоге вашего WordPress и не содержит посторонних правил, в противном случае это снова может вызвать аналогичные проблемы.
Итог
Таким образом, основная причина вашей проблемы заключалась в конфликте настроек .htaccess. Если у вас возникнут подобные ситуации в будущем, следует всегда проверять этот файл и исключать ненужные или конфликтующие строки, которые могут нарушать работу системы постоянных ссылок WordPress.
Не забывайте периодически сохранять резервные копии вашего сайта и конфигурационных файлов, чтобы легко восстановить рабочее состояние в случае возникновения проблем. Если у вас есть дополнительные вопросы или нужна помощь, не стесняйтесь обращаться за поддержкой!