Правильный ответ: никакой. Wp Rocket дописывает свои правила в .htaccess.
Проблему решил вот этим кодом
$htaccess = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/.htaccess');
if(strpos($htaccess, '# BEGIN WP Rocket') !== false) {
$replacement = 'RewriteBase /'.PHP_EOL.
'RewriteCond %{HTTP:if-modified-since} .'.PHP_EOL.
'RewriteRule ^index\.php$ - [L]'.PHP_EOL.
'RewriteCond %{REQUEST_FILENAME} !-f'.PHP_EOL.
'RewriteCond %{REQUEST_FILENAME} !-d'.PHP_EOL.
'RewriteRule . /index.php [L]'.PHP_EOL;
if(!strpos($htaccess, $replacement) !== false) {
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/.htaccess', preg_replace('/RewriteBase \//', $replacement, $htaccess, 1));
}
}
который срабатывает при установке и включении плагина, соответственно при выключении у меня отрабатывает эта функция
function unistall() {
/**
* htaccess edit
*/
$htaccess = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/.htaccess');
$replacement = 'RewriteBase /'.PHP_EOL.
'RewriteCond %{HTTP:if-modified-since} .'.PHP_EOL.
'RewriteRule ^index\.php$ - [L]'.PHP_EOL.
'RewriteCond %{REQUEST_FILENAME} !-f'.PHP_EOL.
'RewriteCond %{REQUEST_FILENAME} !-d'.PHP_EOL.
'RewriteRule . /index.php [L]'.PHP_EOL;
if(strpos($htaccess, $replacement) !== false) {
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/.htaccess', str_replace($replacement, 'RewriteBase /'.PHP_EOL, $htaccess));
}
}