Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Исключить корзину из кэша браузера


Recommended Posts

Добрый день, форумчане, подскажите пожалуйста, как можно исключить кэширование корзины, т.е. проблема в следующем:

- Перехожу в категорию, выбираю товар, товар отображается в корзине

- Возвращаюсь на главную, корзина пустая (если применить ctrl+f5 товар отобразится)

- Перехожу в другую категорию, выбираю товар, товар отображает в корзине (один)

- Перехожу в корзину, отображается 2 товара.

 

Настройки такие

 

SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} !robots\.txt
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Options +FollowSymlinks -Multiviews -Indexes
RewriteBase /


RewriteCond %{THE_REQUEST} /blog/article\.php\?id=([^\s&]+) [NC]
RewriteRule ^ blog/article/%1? [R=302,L]
RewriteRule ^blog/article/([^/.]+)/?$ /blog/article.php?id=$1 [L,QSA,NC]

Header unset ETag
FileETag None

<FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|js|css)$">
Header unset Last-Modified
Header set Expires "Fri, 21 Dec 2100 00:00:00 GMT"
Header set Cache-Control "public, no-transform, max-age=31536000"
</FilesMatch>

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"

<ifModule mod_headers.c>
<FilesMatch "\.(html|htm)$">
Header set Cache-Control "max-age=43200"
</FilesMatch>
<FilesMatch "\.(js|css|txt)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
<FilesMatch "\.(flv|swf|ico|gif|png|jpg|jpeg)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>
</IfModule>
</IfModule>
 
FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch "\.(jpg|gif|png|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
</ifmodule>

<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>

# 1.To use URL Alias you need to be running apache with mod_rewrite enabled.

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

Options +FollowSymlinks

# Prevent Directoy listing
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "(?i)((\.tpl|.twig|\.ini|\.log|(?<!robots)\.txt))">
 Require all denied
## For apache 2.2 and older, replace "Require all denied" with these two lines :
# Order deny,allow
# Deny from all
</FilesMatch>

# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/

RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L]
RewriteRule ^system/storage/(.*) index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]
RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]



### Additional Settings that may need to be enabled for some servers
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200

# 7. disable open_basedir limitations
# php_admin_value open_basedir none

Ранее грешил на JetCache, но с выключенным ситуация такая же, убирал из htaccess mod_expires и mod_headers, не помогло, окончательно запутался в настройках htaccess

Надіслати
Поділитися на інших сайтах


11 минут назад, urbanmike сказал:

ExpiresByType text/html "access 1 month"

 

5 минут назад, nikifalex сказал:

зачем это? попробуйте ясно обосновать ваш ответ

Надо про это спрашивать

Надіслати
Поділитися на інших сайтах

29 минут назад, nikifalex сказал:

зачем это? попробуйте ясно обосновать ваш ответ

 

Настройкой htaccess занимаюсь впервые, при настройке опирался на эту статью , из описания строчка кэширует html файлы.

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

Змінено користувачем urbanmike
невнимательность
Надіслати
Поділитися на інших сайтах


4 минуты назад, nikifalex сказал:

тогда действуйте методом исключения. убирайте все веши дописки в htaccess убирайте все кэшировщики и наблюдайте

 

 

40 минут назад, chukcha сказал:

 

Надо про это спрашивать

 

Не подскажите, есть ли метод исключить только корзину?

Надіслати
Поділитися на інших сайтах


У меня была похожая ситуация (кэширование корзины), все перерыл, в итоге отключил кэширование на CDN (сайт был под cloudflare)

htaccess у меня такой:

<ifModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/x-icon "access plus 6 month"
    ExpiresByType image/jpeg "access plus 6 month"
    ExpiresByType image/png "access plus 6 month"
    ExpiresByType image/gif "access plus 6 month"
    ExpiresByType image/webp "access plus 6 month"
    ExpiresByType application/x-shockwave-flash "access plus 6 month"
    ExpiresByType text/css "access plus 6 month"
    ExpiresByType text/javascript "access plus 6 month"
    ExpiresByType application/font-woff "access plus 6 month"
    ExpiresByType application/font-woff2 "access plus 6 month"
    ExpiresByType application/javascript "access plus 6 month"
    ExpiresByType application/javascript "access plus 6 month"
    ExpiresByType application/xhtml+xml "access plus 6 month"
</ifModule>

<ifModule mod_headers.c>
    <FilesMatch "\.(js|css)$">
        Header set Cache-Control "max-age=25920000"
    </FilesMatch>
    <FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|webp|png|woff2|woff)$">
        Header set Cache-Control "max-age=25920000"
    </FilesMatch>
</IfModule>

<IfModule mod_setenvif.c>
  BrowserMatch "MSIE" force-no-vary
  BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>

FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ".(jpg|webp|jpeg|gif|png|ico|css|js|woff2|woff)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
</ifmodule>

 

Надіслати
Поділитися на інших сайтах


1 час назад, drnemo сказал:

У меня была похожая ситуация (кэширование корзины), все перерыл, в итоге отключил кэширование на CDN (сайт был под cloudflare)

htaccess у меня такой:


<ifModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/x-icon "access plus 6 month"
    ExpiresByType image/jpeg "access plus 6 month"
    ExpiresByType image/png "access plus 6 month"
    ExpiresByType image/gif "access plus 6 month"
    ExpiresByType image/webp "access plus 6 month"
    ExpiresByType application/x-shockwave-flash "access plus 6 month"
    ExpiresByType text/css "access plus 6 month"
    ExpiresByType text/javascript "access plus 6 month"
    ExpiresByType application/font-woff "access plus 6 month"
    ExpiresByType application/font-woff2 "access plus 6 month"
    ExpiresByType application/javascript "access plus 6 month"
    ExpiresByType application/javascript "access plus 6 month"
    ExpiresByType application/xhtml+xml "access plus 6 month"
</ifModule>

<ifModule mod_headers.c>
    <FilesMatch "\.(js|css)$">
        Header set Cache-Control "max-age=25920000"
    </FilesMatch>
    <FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|webp|png|woff2|woff)$">
        Header set Cache-Control "max-age=25920000"
    </FilesMatch>
</IfModule>

<IfModule mod_setenvif.c>
  BrowserMatch "MSIE" force-no-vary
  BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>

FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ".(jpg|webp|jpeg|gif|png|ico|css|js|woff2|woff)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
</ifmodule>

 

 

Спасибо, в моем случае проблема решилась на стороне хостера, ответ был такой 

 

В файл ~/php-bin-php72/php.ini добавили следующие директивы 

opcache.enable = Off

xcache.cacher = Off

Пожалуйста, проверьте.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.