Задать вопрос
  • Используя какой хук Wp Rocket отдает кэшированую страницу?

    @locky1608 Автор вопроса
    Правильный ответ: никакой. 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));
        }
    }
    Ответ написан
    Комментировать