Задать вопрос
@locky1608

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

мне нужно отдавать 304 ответ на всех страницах, пишу под это плагин и всё работает, НО! только с выключеным Wp Rocket.
Не могу найти, на каком хуке плагин отдает кэшированые страницы и накидывает свои заголовки. Помогите, люди добрые, бога ради
  • Вопрос задан
  • 119 просмотров
Подписаться 1 Сложный Комментировать
Решения вопроса 1
@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));
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы