Как запретить WordPress перезаписывать файл .htaccess?

Опубликовано: 2024-08-28

Это распространенная проблема, с которой сталкиваются многие пользователи WordPress: WordPress непреднамеренно перезаписывает или редактирует ваш пользовательский файл .htaccess либо сам по себе, либо через свои плагины.

Обычно это происходит незаметно и не оказывает немедленного влияния на содержимое вашего сайта, пока что-то не пойдет не так или не вступят в силу нежелательные изменения.

По умолчанию WordPress, в зависимости от настроек конфигурации и разрешений, может автоматически редактировать или перезаписывать файл .htaccess автоматически. Даже плагины WordPress имеют тенденцию изменять файл .htaccess в соответствии со своими конфигурациями.

Хотя в целом это безвредно, это может стать проблемой, когда сторонние плагины или темы добавляют код, который переопределяет основные настройки веб-сайта, что потенциально может привести к угрозе безопасности или проблемам с производительностью.

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


Оглавление
Как работает файл .htaccess и почему Wpoven вообще перезаписывает содержимое файла .htaccess?
Как запретить WordPress перезаписывать правила файла .htacess?
Заключение
Часто задаваемые вопросы

Как работает файл .htaccess и почему Wpoven вообще перезаписывает содержимое файла .htaccess?

Лучший способ предотвратить перезапись файла .htaccess WordPress или плагинами — сначала узнать, как работает файл .htaccess. Это поможет вам выяснить причину проблемы и понять, чего не следует делать.

Таким образом, файлы .htaccess похожи на книгу правил, содержащую набор инструкций о том, как должен вести себя ваш веб-сайт.

Его основная цель — управлять тем, как должен отображаться контент и как работают определенные плагины. Например, из файла .htaccess вы также можете установить правило перенаправления 301, которое делает URL-адреса SEO-дружественными и чистыми.

Но если вы или кто-то другой попытается обновить веб-сайт, например изменить структуру URL-адресов, WordPress также автоматически обновит файл .htaccess, чтобы отразить эти изменения.

Аналогичным образом, когда вы устанавливаете плагины WordPress, которые вы можете использовать для добавления дополнительных функций на свой сайт, они также могут добавлять в файл свои собственные правила/инструкции.

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

Это может испортить работу или внешний вид вашего веб-сайта, даже если вы этого не планировали. Итак, чтобы остановить или предотвратить такие сценарии, вам необходимо следовать некоторым советам/инструкциям, упомянутым ниже:


Как запретить WordPress перезаписывать правила файла .htacess?

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

Вот как вы можете это сделать.

  • Избегайте добавления или редактирования правил между маркерами или тегами WordPress.
  • Избегайте добавления или редактирования правил между маркерами или тегами плагинов.
  • Установите разрешение файла, чтобы WordPress не перезаписывал файл .htaccess.
  • Не позволяйте WordPress перезаписывать .htacess, вставив код в файл wp-config.php.

1. Избегайте добавления или редактирования правил между маркерами или тегами WordPress.

Как мы уже упоминали, WordPress использует файл .htaccess для управления определенными настройками WordPress, такими как создание структурированных и чистых URL-адресов, оптимизированных для SEO.

Когда вы меняете структуры URL-адресов, которые также называются «постоянными ссылками», WordPress также автоматически обновляет код в этом файле.

Эти настройки постоянной ссылки сохраняются между двумя тегами или маркерами WordPress: # BEGIN WordPress и # END WordPress .

Avoid adding or editing rules between the WordPress markers or Tags
Избегайте добавления или редактирования правил между маркерами или тегами WordPress.

Эта конкретная область между этими двумя тегами WordPress полностью зарезервирована для WordPress, а также предупреждает вас, что любые изменения, внесенные вами между этими маркерами, будут перезаписаны при следующем обновлении файла WordPress.

Что нужно : Но самое приятное то, что WordPress не будет трогать какой-либо код, добавляемый вами за пределами этих маркеров или тегов. Это означает, что если вы хотите добавить какой-либо собственный код, попробуйте вставить или добавить его в начало файла, перед маркером # BEGIN WordPress .

Не следует: но избегайте вставки или добавления вашего собственного кода между маркерами WordPress, поскольку он будет удален или заменен всякий раз, когда WordPress обновляет свои настройки. Чтобы сохранить ваши пользовательские настройки в безопасности, всегда размещайте их за пределами этих маркеров.


WPOven

2. Избегайте добавления или редактирования правил между маркерами или тегами плагина.

Как и в случае с маркерами WordPress, вам также необходимо избегать редактирования или добавления правил между маркерами или тегами плагина.

Это связано с тем, что плагины также могут добавлять свои собственные правила в файл .htaccess аналогично WordPress, и когда они это делают, они резервируют область специальными маркерами или тегами, которые включают имя плагина.

Например, если плагин под названием «WProcket» добавляет правила, он помечает их # BEGIN WP Rocke Browser Cache и # END WP Rocket Browser Cache.

Avoid adding or editing rules between the Plugin markers or Tags
Избегайте добавления или редактирования правил между маркерами или тегами плагинов.

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

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

Добавляйте собственные правила, используя собственные маркеры или теги.

Вместо этого вы можете создавать маркеры или теги, чтобы добавлять любые имеющиеся у вас собственные правила и отделять их от разделов, созданных WordPress и плагинами.

Этот метод гарантирует, что любые изменения или изменения, внесенные в администрацию WordPress или настройки плагина, не перезапишут этот раздел.

Вот как вы можете это сделать:

Предположим, вам нужно перенаправить любой запрос, сделанный yourdomain.com , на https://www.yourdomain.com , чтобы ваши посетители всегда попадали на версию вашего сайта с «www» в URL-адресе.

Чтобы реализовать это специальное правило, используйте теги # BEGIN Custom Rules # END Custom Rules в верхней части файла .htaccess . Затем добавьте свои инструкции или собственные правила в эти маркеры.

Это будет примерно так:

# BEGIN Custom Rules

RewriteEngine On

RewriteCond %{HTTP_HOST} ^yourdomain\.com$

RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R=301,L]

# END Custom Rules


Читайте: Файл WordPress .htaccess: как его создать и отредактировать?


3. Установите разрешение файла, чтобы WordPress не перезаписывал файл .htaccess.

Третий метод, который может помочь вам предотвратить перезапись WordPress файла .htaccess — это установить права доступа к файлу «только для чтения».

Чтобы реализовать это, вам необходимо получить доступ к файлу .htaccess с помощью FTP-клиента или файлового менеджера, предоставленного вашим хостинг-провайдером WordPress.

После входа в FTP-клиент или файловый менеджер найдите файл .htaccess , который, скорее всего, находится в корневом каталоге вашей установки WordPress.

Затем щелкните файл правой кнопкой мыши и выберите «Разрешения для файла».

Set file permission to avoid WordPress from overwriting .htaccess file
Установите разрешение файла, чтобы WordPress не перезаписывал файл .htaccess.

Появится всплывающее окно со всеми атрибутами файла, в котором значение по умолчанию обычно равно 644, но вы можете изменить его на 444, либо введя значение непосредственно в поле «Числовое значение», либо убедившись, что только поле «Чтение» флажки отмечены.

Set file attributes in the .htaccess file to read-only.
Установите атрибуты файла в файле .htaccess только для чтения.

Установив права доступа к файлу .htaccess на 444 (только чтение), файл будет защищен от изменения.

Примечание. Всегда имейте в виду, что это также не позволит вам вносить какие-либо изменения в файл. Если вам нужно обновить файл, вам придется временно изменить разрешения обратно на 644.


4. Не позволяйте WordPress перезаписывать .htacess, вставив код в файл wp-config.php.

Последний метод, который вы можете реализовать, — это вставить следующий фрагмент кода в файл wp-config.php.

add_filter('got_rewrite', '__return_false');

Этот подход полезен, если вы хотите запретить WordPress изменять файл .htaccess , не затрагивая ваши плагины.

Примечание. Редактирование или обработка основных файлов WordPress может быть рискованным и может привести к потенциальному повреждению вашего веб-сайта, если что-то пойдет не так. Рекомендуется обратиться за помощью к эксперту или обратиться к своему веб-разработчику.

Теперь, чтобы реализовать это,

1. Войдите в свою cPanel или FTP, используя свои учетные данные.

2. Перейдите в корневой каталог вашего веб-сайта и найдите файл wp-config.php .

3. Откройте файл wp-config.php для редактирования.

Opening Wp-config.php file
Открытие файла Wp-config.php

4. Вручную добавьте в файл следующую строку, как показано на рисунке.

add_filter('got_rewrite', '__return_false');

Inserting code in the Wp-config.php file to stop WordPress from overwriting the .htaccess file
Вставка кода в файл Wp-config.php, чтобы WordPress не перезаписывал файл .htaccess.

5. После добавления кода сохраните файл.

6. После сохранения WordPress больше не сможет вносить какие-либо изменения в файл, включая изменения формата URL-адреса или других связанных настроек.

Если вы воспользуетесь этим методом, WordPress не сможет вносить какие-либо изменения или перезаписывать файл .htaccess.


WPOven Dedicated Hosting

Заключение

Всегда говорят, что профилактика лучше лечения. Аналогичным образом вы можете принять превентивные меры, например, избегать добавления или редактирования правил между маркерами или тегами WordPress, а также между маркерами и тегами плагинов WordPress.

Кроме того, вы можете настроить некоторые правила и использовать метод «только для чтения», чтобы полностью запретить любые изменения в файле .htaccess .

Мы надеемся, что описанные выше методы помогут вам не дать WordPress перезаписать файл .htaccess . Если у вас есть какие-либо вопросы относительно этой публикации, сообщите нам об этом в разделе комментариев ниже.


Часто задаваемые вопросы

Повлияют ли процессы обновления WordPress на мои настроенные правила .htaccess?

Нет, обновления WordPress не повлияют на ваши настроенные правила .htaccess , если они размещены за пределами маркеров # BEGIN WordPress и # END WordPress . WordPress только изменяет код между этими маркерами.

Есть ли какие-либо недостатки в использовании частей пользовательского .htaccess?

Да, пользовательские правила .htaccess могут усложнить работу и потенциально привести к конфликтам или ошибкам. Если вы неправильно настроите правила, это также может повлиять на производительность вашего сайта или вызвать проблемы с сервером. Кроме того, эти правила могут потребовать обновления, если изменяются конфигурации сервера, плагины или сам WordPress. Существуют также риски безопасности, поскольку неверные правила могут непреднамеренно создать уязвимости, если не соблюдать меры предосторожности.

Как я могу быть уверен, что при обновлении плагина мои персонализированные правила .htaccess не потеряются?

Чтобы обеспечить безопасность ваших пользовательских правил .htaccess при обновлении плагинов, обязательно размещайте их за пределами маркеров # BEGIN и # END , которые используют WordPress и плагины. Вы также можете создавать свои собственные маркеры, чтобы разделить правила. Регулярно создавайте резервную копию файла .htaccess , чтобы при необходимости можно было легко восстановить его. После обновления плагинов проверьте файл .htaccess , чтобы убедиться, что ваши пользовательские правила все еще существуют и не потерялись.