Страницы WordPress ломаются с пользовательскими настройками постоянных ссылок (каталог темы не выводится)

Вопрос или проблема

У нас есть сайт в разработке, который работает отлично на локальном сервере, однако при загрузке на наш сервер с использованием настроек постоянных ссылок %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.

Не забывайте периодически сохранять резервные копии вашего сайта и конфигурационных файлов, чтобы легко восстановить рабочее состояние в случае возникновения проблем. Если у вас есть дополнительные вопросы или нужна помощь, не стесняйтесь обращаться за поддержкой!

Оцените материал
Добавить комментарий

Капча загружается...