WP: спонтанно портится htaccess

R
На сайте с 01.08.2010
Offline
40
4832

Такая проблема: совершенно бессистемно вдруг портится htaccess файл - дописывается пустая строка, либо вообще он разбухает до больших размеров 300 кб, но при этом там не появляются ссылки и редиректы на вражеские ресурсы. Просто повторяется раз за разом содержимое оригинального файла. И один раз появляется лишний символ "s". Если это вирус, то крайне бессмысленный или недоделанный. Но может быть есть какие то свои причины менять htaccess?

Обновление WP до последней версии, смена хостинга, установление прав на htaccess только на чтение не меняет ситуацию.

Пример испорченного файла:

--- начало файла ---

# B# BEGIN WordPre<If<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

# END WordPress

# 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]

</IfModule>

# END WordPress

---- конец файла ----

Что может менять htaccess? Что делать?

Продам одну и единственную рекламную сквозную ссылку с текстом под шапкой уютного СДЛ бложика (http://u.to/-UgPBA). Возраст 3,5 года, ТИЦ=20, PR=2, dmoz: 20 wmz/мес.
SeVlad
На сайте с 03.11.2008
Offline
1609
#1
rototo:
Что может менять htaccess? Что делать?

Начни с изучения логов сервера.

Ида, плагины потключай, тему смени. пп4-6 в общем.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
aleksejsmir
На сайте с 09.04.2010
Offline
30
#2
rototo:
Такая проблема: совершенно бессистемно вдруг портится htaccess файл...

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

Блог Masterpro (http://masterpro.ws)
Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#3

Бывает плагины кривые, бывают зловреды пишут так:


Код вордпресса
пустая строка
пустая строка
пустая строка
пустая строка
много пустых строк
ВРЕДОНОСНЫЙ КОД
пустая строка
пустая строка
пустая строка
много пустых строк

Анализируйте.

Если вредоносного нет, то либо будет, либо все-таки плагины.

Подпись))
R
На сайте с 01.08.2010
Offline
40
#4

Углубляясь в вопрос я понял, что скорее всего это не вирус.

Знаете ли вы, что движок WP имеет средства для самостоятельного изменения htaccess файла?

Все это связано с функцией flush_rules, которая находится в файле wp-includes/rewrite.php. Именно этот файл отвечает за настройки ЧПУ. Возможно, ситуация связана с тем, что так получилось, что я установил правило ЧПУ для постов в виде: домен/page/post_title. В то же время, как оказалось, пагинация в WP тоже имеет вид домен/page/XX (где XX - номер страницы архивов). Page есть и там и там, причем, стандартными средствами изменить пагинацию нельзя, а посты можно, но с точки зрения накопленных за 3 года внешних ссылок на посты лучше изменить как раз пагинацию. Я это проделал подправив файл wp-includes/rewrite.php заменив

var $pagination_base = 'page';

на

var $pagination_base = 'list-of-pages';

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

Но теперь я вижу, что htaccess заново переписывается при каждом посещении. Интересно, возможна ли коллизия при записи в случае сильного наплыва посетителей? Может можно где нибудь поставить отключение перезаписи htaccess (а включать только при смене темы, плагинов и прочих админских изменениях)?

A
На сайте с 20.08.2010
Offline
775
#5

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

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

Devvver
На сайте с 02.07.2008
Offline
681
#6
awasome:
Подумал, что залили с редиректом, но нет, стандартный текст. Гуглил, нашел, что какой-то из скриптов может менять его содержимое, так что надо права менять на перезапись.

У меня та же история, это один из плагинов обновляет. Вот какой только, не понятно.

Мой блог. Все о создании сайтов,Seo и СДЛ ( https://devvver.ru/ ) Мой SEO телеграм канал https://t.me/seobloggers
R
На сайте с 01.08.2010
Offline
40
#7

Да, именно так. Можно просто удалить htaccess и при заходе на сайт (index.php естессно) он вновь создастся. А процедура, которая пишет на диск файл htaccess находится в wp-admin/includes/misc.php

function save_mod_rewrite_rules()

В общем, я попробовал тупо заменить в этой функции

return insert_with_markers( $htaccess_file, 'WordPress', $rules );

на

return true;

Все равно содержимое htaccess не меняется.

A
На сайте с 20.08.2010
Offline
775
#8
Devvver:
У меня та же история, это один из плагинов обновляет. Вот какой только, не понятно.

Интересно. Я думал, что с обновлениями связано, но никакой инфы не нашел.

rototo:
Да, именно так. Можно просто удалить htaccess и при заходе на сайт (index.php естессно) он вновь создастся. А процедура, которая пишет на диск файл htaccess находится в wp-admin/includes/misc.php

function save_mod_rewrite_rules()

В общем, я попробовал тупо заменить в этой функции

return insert_with_markers( $htaccess_file, 'WordPress', $rules );

на

return true;

Все равно содержимое htaccess не меняется.

Не пойму - этот способ запрещает смену содержимого файла или нет?

R
На сайте с 01.08.2010
Offline
40
#9
awasome:

Не пойму - этот способ запрещает смену содержимого файла или нет?

Да. Этот способ просто обманывает движок и WP думает, что файл записался, хотя в реальности он не записывался. Если заменить return true; на return false; то по идее, WP будет думать, что записать htaccess не удалось.

---------- Добавлено 02.10.2013 в 14:41 ----------

Devvver:
У меня та же история, это один из плагинов обновляет. Вот какой только, не понятно.

В поиске по коду установленных плагинов можно найти подозреваемых (искать вхождение "_rules" или "flush_rules"). У меня это оказались плагины:

wordpress-link-directory

nextgen-gallery

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий