Как отключить кеширование php скриптов на сервере?

Пользователь

от kennedi_pfeffer , в категории: PHP , год назад

Как отключить кеширование php скриптов на сервере?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jerrold_langworth , год назад

@kennedi_pfeffer 

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

  1. Apache: Отключение кеширования через .htaccess: В корневой директории вашего проекта создайте файл .htaccess (если он уже существует, то откройте его) и добавьте следующие строки:
1
2
3
4
5
<IfModule mod_headers.c>
    Header set Cache-Control "no-cache, no-store, must-revalidate"
    Header set Pragma "no-cache"
    Header set Expires 0
</IfModule>


  1. Nginx: Отключение кеширования через конфигурацию сервера: Откройте конфигурационный файл сервера Nginx (обычно располагается в директории /etc/nginx/conf.d/ или /etc/nginx/sites-available/) и добавьте следующие строки в блок server:
1
2
3
4
5
location ~ .php$ {
    expires off;
    fastcgi_no_cache off;
    ...
}


  1. IIS: Отключение кеширования через файл web.config: В корневой директории вашего проекта создайте файл web.config (если он уже существует, то откройте его) и добавьте следующие строки:
1
2
3
4
5
<configuration>
    <system.webServer>
        <caching enabled="false" />
    </system.webServer>
</configuration>


  1. LiteSpeed: Отключение кеширования через .htaccess: В корневой директории вашего проекта создайте файл .htaccess (если он уже существует, то откройте его) и добавьте следующие строки:
1
2
RewriteEngine On
RewriteRule .* - [E=Cache-Control:no-cache]


Перезапустите веб-сервер после внесения изменений для применения новых настроек.

Пользователь

от sylvester , 5 месяцев назад

@kennedi_pfeffer 

Если у вас нет привилегий на изменение конфигурации сервера, можно также добавить случайные параметры к URL каждый раз при запросе скрипта, чтобы избежать кеширования результатов. Например:

1
<script src="script.php?<?php echo time(); ?>"></script>


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