Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]CSP i cachowanie CSS, Stary naleśnik odgrzewany
Johnas
post 16.04.2022, 20:52:59
Post #1





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

Ostrzeżenie: (0%)
-----


Witam, próbuję zrobić standardowo system zarządzania, który wszystkie problemy związane z SEO oraz optymalizacją będzie miał rozwiązane. Czyli wchodzi użytkownik, tworzy stronę, a system sam rozwiązuje jego problemy przez co użytkownik jest zwolniony z odpowiedzialności za wszelkie błędy. Chcę wprowadzić między innymi funkcję, która będzie automatycznie includowany javascript dodawać do footera, jeżeli ktoś stworzy szablon w którym javascript jest w headerze. Chcę aby strona osiągała najwyższe wyniki w Google Speed Page oraz w Light House (funkcja w google chrome po wciśnięciu CTRL+Shift+I). Mam problem z cachowaniem CSS oraz z CSP. O ile kiedyś rozwiązałem problem z pierwszym, a teraz mi się nie udaje to o tym drugim pierwszy raz słyszę. Używam hostingu na domena (kropka) pl i wydaję mi się że używają protokołu http w wersji 1.0 bo htaccess nie pozwala na cachowanie CSS. Błąd się nie poprawia. Mam certyfikat SSL i nie ma tam opcji włączenia http2. Ogólnie to chyba pozostaje zmienić hosting.


--------------------
Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście
Go to the top of the page
+Quote Post
aras785
post 16.04.2022, 23:50:41
Post #2





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Użyj cloudflare
Go to the top of the page
+Quote Post
Johnas
post 16.04.2022, 23:53:31
Post #3





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

Ostrzeżenie: (0%)
-----


jest to opcja, ale raczej nie pomaga to w pozycjonowaniu tongue.gif


--------------------
Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście
Go to the top of the page
+Quote Post
vokiel
post 19.04.2022, 18:12:28
Post #4





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Cytat(Johnas @ 16.04.2022, 21:52:59 ) *
Mam problem z cachowaniem CSS oraz z CSP. O ile kiedyś rozwiązałem problem z pierwszym, a teraz mi się nie udaje to o tym drugim pierwszy raz słyszę.


Możesz nakreślić jaki ma związek CSP z cachowaniem CSS?


Cytat(Johnas @ 16.04.2022, 21:52:59 ) *
Używam hostingu na domena (kropka) pl i wydaję mi się że używają protokołu http w wersji 1.0 bo htaccess nie pozwala na cachowanie CSS. Błąd się nie poprawia.


Cache CSS nie ma związku z protokołem HTTP (no i raczej jest to HTTP/1.1). Może masz zablokowane niektóre dyrektywy jakich możesz użyć w swoim htaccess. A jaki błąd się pojawia?


Cytat(Johnas @ 16.04.2022, 21:52:59 ) *
Mam certyfikat SSL i nie ma tam opcji włączenia http2. Ogólnie to chyba pozostaje zmienić hosting.


Samo posiadanie certyfikatu nie daje z automatu http2, ale jest wymagane. Http2 trzeba włączyć w serwerze www i w danym vhoście (o ile nie zostanie ustawione domyślnie dla wszystkich). Jeśli na hostingu tego nie masz, nie możesz włączyć w panelu i po kontakcie z supportem też nie - to tak, najwyższy czas się przenieść do kogoś, kto ogarnia.


--------------------
Go to the top of the page
+Quote Post
Johnas
post 19.04.2022, 20:28:35
Post #5





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

Ostrzeżenie: (0%)
-----


Ja pytałem się o dwie rzeczy na raz. Może inaczej skonstruuje pytanie, mianowicie nie mam pojęcia jak zrobić dachowanie CSS przez co mi tego nie robi. Mógłby ktoś podesłać jakąś instrukcję?


--------------------
Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście
Go to the top of the page
+Quote Post
vokiel
post 20.04.2022, 20:20:02
Post #6





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


To tak, żeby cache miał sens, to nazwa zasobu musi być unikalna (w nazwie pliku hash z zawartości). Wtedy można cache ustawić na bardzo długi czas i jeśli zmieni się zawartość, hash się przeliczy i będzie nowy link.
Czyli de facto musisz tu mieć jakiś builder wpleciony. Krok po kroku to wygląda tak:
1. Budujesz całą stronę (html, js, css).
2. Dla assetów (js, css) wyliczasz ich hashe z zawartości pliku.
3. Zmieniasz nazwę (np z main.css, main.js na odpowiedniki z hashem w nazwie => main-a0a9af.css main-8a98asdf.js).
4. We wszystkich plikach HTML podmieniasz linki z main.css na main-a0a9af.css i main.js na main-8a98asdf.js

Cache plików HTML pownien być krótki, tak aby przeglądarka dość często pobierała samą stronę, natomiast assety można w takim przypadku wrzucać do cache nawet np na rok, albo w sumie też do nieskończoności ;-) Jeśli nastąpią zmiany w treści, wygeneruje się nowy hash, nowa nazwa pliku => przeglądarka pobierze nowe pliki.

CDN może serwować nagłówki z serwera źródła. Cache na poziomie serwera www można zrobić na kilka sposobów, w zależności od wersji, dostępnych modułów.
Przykłady dla Apache:

[APACHE] pobierz, plaintext
  1. <IfModule mod_headers.c>
  2. # Images - 1 year
  3. <filesMatch "\.(jpg|jpeg|png|gif|ico|svg)$">
  4. Header set Cache-Control "max-age=31536000, public"
  5. Header unset Set-Cookie
  6. </filesMatch>
  7.  
  8. # Fonts - 1 year
  9. <filesMatch "\.(ttf|otf|eot|woff|woff2)$">
  10. Header set Cache-Control "max-age=31536000, public"
  11. Header unset Set-Cookie
  12. </filesMatch>
  13.  
  14. # JS/CSS - 1 year
  15. <filesMatch "\.(css|js)$">
  16. Header set Cache-Control "max-age=31536000, public"
  17. Header unset Set-Cookie
  18. </filesMatch>
  19.  
  20. # Media files - 1 month
  21. <FilesMatch "\.(txt|pdf|flv|swf|mp3|mp4)$">
  22. Header set Cache-Control "max-age=2628000, public, must-revalidate"
  23. Header unset Set-Cookie
  24.  
  25. # Create the ETag to check resource hash every time
  26. FileETag MTime Size
  27. </FilesMatch>
  28.  
  29. # XML - 1 hour
  30. <FilesMatch "\.xml$">
  31. Header set Cache-Control "max-age=3600, public, must-revalidate, no-cache"
  32. # Create the ETag to check resource hash every time
  33. FileETag MTime Size
  34. </FilesMatch>
  35.  
  36. # Short, 1 min cache for html files, forcing re-validate with ETag
  37. <FilesMatch ".(htm|html)$">
  38. Header set Cache-Control "max-age=60, public, must-revalidate, no-cache"
  39. # Create the ETag to check resource hash every time
  40. FileETag MTime Size
  41. </FilesMatch>
  42.  
  43. # PHP and JSON - disabled
  44. <FilesMatch "\.(php|json)$">
  45. Header set Cache-Control: "max-age=0, no-store, no-cache"
  46. </FilesMatch>
  47.  
  48. # Make sure old browser won't get compressed files
  49. <FilesMatch ".(js|css|xml|svg|json|gz|html|htm)$">
  50. Header append Vary Accept-Encoding
  51. </FilesMatch>
  52. </IfModule>
[APACHE] pobierz, plaintext


[APACHE] pobierz, plaintext
  1. <IfModule mod_expires.c>
  2. # Set basic Expires header as a fallback
  3. # If there is a Cache-Control header with the "max-age" or "s-maxage" directive in the response,
  4. # the Expires header is ignored.
  5. ExpiresActive on
  6.  
  7. # By default cache all for 1 minute only
  8. # (so nothing will be cached for too long)
  9. ExpiresDefault "access plus 60 seconds"
  10.  
  11. # Images
  12. ExpiresByType image/gif "access plus 1 year"
  13. ExpiresByType image/png "access plus 1 year"
  14. ExpiresByType image/jpg "access plus 1 year"
  15. ExpiresByType image/jpeg "access plus 1 year"
  16. ExpiresByType image/pipeg "access plus 1 year"
  17. ExpiresByType image/svg+xml "access plus 1 year"
  18.  
  19. # Icons
  20. ExpiresByType image/ico "access plus 1 year"
  21. ExpiresByType image/icon "access plus 1 year"
  22. ExpiresByType text/ico "access plus 1 year"
  23. ExpiresByType image/x-ico "access plus 1 year"
  24. ExpiresByType image/x-icon "access plus 1 year"
  25. ExpiresByType application/ico "access plus 1 year"
  26. ExpiresByType image/vnd.microsoft.icon "access plus 1 year"
  27.  
  28. # Audio
  29. ExpiresByType audio/ogg "access plus 1 month"
  30. ExpiresByType audio/basic "access plus 1 month"
  31. ExpiresByType audio/mid "access plus 1 month"
  32. ExpiresByType audio/midi "access plus 1 month"
  33. ExpiresByType audio/mpeg "access plus 1 month"
  34. ExpiresByType audio/x-aiff "access plus 1 month"
  35. ExpiresByType audio/x-mpegurl "access plus 1 month"
  36. ExpiresByType audio/x-pn-realaudio "access plus 1 month"
  37. ExpiresByType audio/x-wav "access plus 1 month"
  38.  
  39. # Video
  40. ExpiresByType video/ogg "access plus 1 month"
  41. ExpiresByType video/mp4 "access plus 1 month"
  42. ExpiresByType video/webm "access plus 1 month"
  43. ExpiresByType video/x-msvideo "access plus 1 month"
  44. ExpiresByType video/mpeg "access plus 1 month"
  45. ExpiresByType video/quicktime "access plus 1 month"
  46. ExpiresByType video/x-la-asf "access plus 1 month"
  47. ExpiresByType video/x-ms-asf "access plus 1 month"
  48. ExpiresByType x-world/x-vrml "access plus 1 month"
  49.  
  50. # Fonts
  51. ExpiresByType font/truetype "access plus 1 year"
  52. ExpiresByType font/opentype "access plus 1 year"
  53. ExpiresByType application/x-font-ttf "access plus 1 year"
  54. ExpiresByType application/x-font-woff "access plus 1 year"
  55. ExpiresByType application/font-woff "access plus 1 year"
  56. ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
  57.  
  58. # Scripts and styles
  59. ExpiresByType text/css "access plus 1 year"
  60. ExpiresByType text/javascript "access plus 1 year"
  61. ExpiresByType text/x-javascript "access plus 1 year"
  62. ExpiresByType application/javascript "access plus 1 year"
  63. ExpiresByType application/x-javascript "access plus 1 year"
  64.  
  65. # Data
  66. ExpiresByType application/pdf "access plus 1 month"
  67. ExpiresByType image/vnd.wap.wbmp "access plus 1 month"
  68. ExpiresByType application/vnd.wap.wbxml "access plus 1 month"
  69. ExpiresByType application/smil "access plus 1 month"
  70.  
  71. # Text
  72. ExpiresByType text/html "access plus 1 minute"
  73. ExpiresByType text/plain "access plus 1 minute"
  74. ExpiresByType text/xml "access plus 1 minute"
  75. ExpiresByType application/xml "access plus 1 minute"
  76.  
  77. # RSS
  78. ExpiresByType application/rss+xml "access plus 1 hour"
  79. ExpiresByType application/atom+xml "access plus 1 hour"
  80. ExpiresByType text/x-component "access plus 1 hour"
  81.  
  82. # Live data
  83. ExpiresByType application/json "access plus 0 seconds"
  84. ExpiresByType application/ld+json "access plus 0 seconds"
  85.  
  86. # Manifest
  87. ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
  88. ExpiresByType text/cache-manifest "access plus 0 seconds"
  89.  
  90. # PHP - diable to be cached unless they explicitly send cache headers themselves.
  91. <FilesMatch \.php$>
  92. ExpiresActive Off
  93. </FilesMatch>
  94.  
  95. </IfModule>
[APACHE] pobierz, plaintext


[APACHE] pobierz, plaintext
  1. <IfModule mod_deflate.c>
  2. # Compress HTML, CSS, JavaScript, Text, XML and fonts
  3. AddOutputFilterByType DEFLATE application/javascript
  4. AddOutputFilterByType DEFLATE application/rss+xml
  5. AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  6. AddOutputFilterByType DEFLATE application/x-font
  7. AddOutputFilterByType DEFLATE application/x-font-opentype
  8. AddOutputFilterByType DEFLATE application/x-font-otf
  9. AddOutputFilterByType DEFLATE application/x-font-truetype
  10. AddOutputFilterByType DEFLATE application/x-font-ttf
  11. AddOutputFilterByType DEFLATE application/x-javascript
  12. AddOutputFilterByType DEFLATE application/xhtml+xml
  13. AddOutputFilterByType DEFLATE application/xml
  14. AddOutputFilterByType DEFLATE font/opentype
  15. AddOutputFilterByType DEFLATE font/otf
  16. AddOutputFilterByType DEFLATE font/ttf
  17. AddOutputFilterByType DEFLATE image/svg+xml
  18. AddOutputFilterByType DEFLATE image/x-icon
  19. AddOutputFilterByType DEFLATE text/css
  20. AddOutputFilterByType DEFLATE text/html
  21. AddOutputFilterByType DEFLATE text/javascript
  22. AddOutputFilterByType DEFLATE text/plain
  23. AddOutputFilterByType DEFLATE text/xml
  24. </IfModule>
[APACHE] pobierz, plaintext


--------------------
Go to the top of the page
+Quote Post
Johnas
post 22.04.2022, 13:16:02
Post #7





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

Ostrzeżenie: (0%)
-----


Pomyślałem o generowaniu przez PHP plików CSS z hashowanym rozmiarem pliku tylko nie wiem jak optymalnie można byłoby to zrobić sad.gif


--------------------
Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście
Go to the top of the page
+Quote Post
vokiel
post 22.04.2022, 21:00:56
Post #8





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Rozmiar to nie jest dobry wyznacznik. Możesz dodać 100 znaków i 100 innych usunąć i rozmiar zostanie ten sam, a zawartość się będzie różnić. Hash z zawartości jest najpewniejszy.


--------------------
Go to the top of the page
+Quote Post
Johnas
post 23.04.2022, 10:32:15
Post #9





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

Ostrzeżenie: (0%)
-----


Hash całej zawartości? I pytanie, generować nowe pliki CSS przez PHP czy da się to zrobić na poziomie revite rule w htaccess


--------------------
Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście
Go to the top of the page
+Quote Post
vokiel
post 24.04.2022, 14:08:35
Post #10





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Zwykle CSSy się buduje z jakiś SASS/SCS, buildery oparte są o JS, mają zwykle taki ficzer wbudowany albo łatwy do dołączenia.

Jeśli nie korzystasz z czegoś takiego, to tak czy inaczej w PHP jest to łatwe do osiągnięcia, bo przecież są gotowe funkcje jak https://www.php.net/manual/en/function.hash-file.php czy też https://www.php.net/manual/en/function.sha1-file.php

Cytat
I pytanie, generować nowe pliki CSS przez PHP czy da się to zrobić na poziomie revite rule w htaccess


Generalnie to odwrotnie - masz zmienione pliki CSS, zmieniasz ich nazwę i podmieniasz ją w plikach HTML.


--------------------
Go to the top of the page
+Quote Post
Johnas
post 24.04.2022, 17:22:32
Post #11





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

Ostrzeżenie: (0%)
-----


a jakbym nie zmieniał nazwy plików tylko dodawał do nazwy css hash - przykład: nazwa.css?v=hash to nie będzie to w taki sam sposób działać ?


--------------------
Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście
Go to the top of the page
+Quote Post
php11
post 24.04.2022, 18:22:10
Post #12





Grupa: Zarejestrowani
Postów: 211
Pomógł: 5
Dołączył: 11.02.2011

Ostrzeżenie: (0%)
-----


Cytat(Johnas @ 24.04.2022, 18:22:32 ) *
dodawał do nazwy css hash - przykład: nazwa.css?v=hash


Ja w ten sposób dodaję na końcu datę zmiany.
Z hashem będzie automat ;-)
Go to the top of the page
+Quote Post
vokiel
post 24.04.2022, 19:17:21
Post #13





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Cytat(Johnas @ 24.04.2022, 18:22:32 ) *
a jakbym nie zmieniał nazwy plików tylko dodawał do nazwy css hash - przykład: nazwa.css?v=hash to nie będzie to w taki sam sposób działać ?


Będzie.


--------------------
Go to the top of the page
+Quote Post
Johnas
post 11.05.2022, 15:27:34
Post #14





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

Ostrzeżenie: (0%)
-----


Cytat(vokiel @ 20.04.2022, 21:20:02 ) *
To tak, żeby cache miał sens, to nazwa zasobu musi być unikalna (w nazwie pliku hash z zawartości). Wtedy można cache ustawić na bardzo długi czas i jeśli zmieni się zawartość, hash się przeliczy i będzie nowy link.
Czyli de facto musisz tu mieć jakiś builder wpleciony. Krok po kroku to wygląda tak:
1. Budujesz całą stronę (html, js, css).
2. Dla assetów (js, css) wyliczasz ich hashe z zawartości pliku.
3. Zmieniasz nazwę (np z main.css, main.js na odpowiedniki z hashem w nazwie => main-a0a9af.css main-8a98asdf.js).
4. We wszystkich plikach HTML podmieniasz linki z main.css na main-a0a9af.css i main.js na main-8a98asdf.js

Cache plików HTML pownien być krótki, tak aby przeglądarka dość często pobierała samą stronę, natomiast assety można w takim przypadku wrzucać do cache nawet np na rok, albo w sumie też do nieskończoności ;-) Jeśli nastąpią zmiany w treści, wygeneruje się nowy hash, nowa nazwa pliku => przeglądarka pobierze nowe pliki.

CDN może serwować nagłówki z serwera źródła. Cache na poziomie serwera www można zrobić na kilka sposobów, w zależności od wersji, dostępnych modułów.
Przykłady dla Apache:

[APACHE] pobierz, plaintext
  1. <IfModule mod_headers.c>
  2. # Images - 1 year
  3. <filesMatch "\.(jpg|jpeg|png|gif|ico|svg)$">
  4. Header set Cache-Control "max-age=31536000, public"
  5. Header unset Set-Cookie
  6. </filesMatch>
  7.  
  8. # Fonts - 1 year
  9. <filesMatch "\.(ttf|otf|eot|woff|woff2)$">
  10. Header set Cache-Control "max-age=31536000, public"
  11. Header unset Set-Cookie
  12. </filesMatch>
  13.  
  14. # JS/CSS - 1 year
  15. <filesMatch "\.(css|js)$">
  16. Header set Cache-Control "max-age=31536000, public"
  17. Header unset Set-Cookie
  18. </filesMatch>
  19.  
  20. # Media files - 1 month
  21. <FilesMatch "\.(txt|pdf|flv|swf|mp3|mp4)$">
  22. Header set Cache-Control "max-age=2628000, public, must-revalidate"
  23. Header unset Set-Cookie
  24.  
  25. # Create the ETag to check resource hash every time
  26. FileETag MTime Size
  27. </FilesMatch>
  28.  
  29. # XML - 1 hour
  30. <FilesMatch "\.xml$">
  31. Header set Cache-Control "max-age=3600, public, must-revalidate, no-cache"
  32. # Create the ETag to check resource hash every time
  33. FileETag MTime Size
  34. </FilesMatch>
  35.  
  36. # Short, 1 min cache for html files, forcing re-validate with ETag
  37. <FilesMatch ".(htm|html)$">
  38. Header set Cache-Control "max-age=60, public, must-revalidate, no-cache"
  39. # Create the ETag to check resource hash every time
  40. FileETag MTime Size
  41. </FilesMatch>
  42.  
  43. # PHP and JSON - disabled
  44. <FilesMatch "\.(php|json)$">
  45. Header set Cache-Control: "max-age=0, no-store, no-cache"
  46. </FilesMatch>
  47.  
  48. # Make sure old browser won't get compressed files
  49. <FilesMatch ".(js|css|xml|svg|json|gz|html|htm)$">
  50. Header append Vary Accept-Encoding
  51. </FilesMatch>
  52. </IfModule>
[APACHE] pobierz, plaintext


[APACHE] pobierz, plaintext
  1. <IfModule mod_expires.c>
  2. # Set basic Expires header as a fallback
  3. # If there is a Cache-Control header with the "max-age" or "s-maxage" directive in the response,
  4. # the Expires header is ignored.
  5. ExpiresActive on
  6.  
  7. # By default cache all for 1 minute only
  8. # (so nothing will be cached for too long)
  9. ExpiresDefault "access plus 60 seconds"
  10.  
  11. # Images
  12. ExpiresByType image/gif "access plus 1 year"
  13. ExpiresByType image/png "access plus 1 year"
  14. ExpiresByType image/jpg "access plus 1 year"
  15. ExpiresByType image/jpeg "access plus 1 year"
  16. ExpiresByType image/pipeg "access plus 1 year"
  17. ExpiresByType image/svg+xml "access plus 1 year"
  18.  
  19. # Icons
  20. ExpiresByType image/ico "access plus 1 year"
  21. ExpiresByType image/icon "access plus 1 year"
  22. ExpiresByType text/ico "access plus 1 year"
  23. ExpiresByType image/x-ico "access plus 1 year"
  24. ExpiresByType image/x-icon "access plus 1 year"
  25. ExpiresByType application/ico "access plus 1 year"
  26. ExpiresByType image/vnd.microsoft.icon "access plus 1 year"
  27.  
  28. # Audio
  29. ExpiresByType audio/ogg "access plus 1 month"
  30. ExpiresByType audio/basic "access plus 1 month"
  31. ExpiresByType audio/mid "access plus 1 month"
  32. ExpiresByType audio/midi "access plus 1 month"
  33. ExpiresByType audio/mpeg "access plus 1 month"
  34. ExpiresByType audio/x-aiff "access plus 1 month"
  35. ExpiresByType audio/x-mpegurl "access plus 1 month"
  36. ExpiresByType audio/x-pn-realaudio "access plus 1 month"
  37. ExpiresByType audio/x-wav "access plus 1 month"
  38.  
  39. # Video
  40. ExpiresByType video/ogg "access plus 1 month"
  41. ExpiresByType video/mp4 "access plus 1 month"
  42. ExpiresByType video/webm "access plus 1 month"
  43. ExpiresByType video/x-msvideo "access plus 1 month"
  44. ExpiresByType video/mpeg "access plus 1 month"
  45. ExpiresByType video/quicktime "access plus 1 month"
  46. ExpiresByType video/x-la-asf "access plus 1 month"
  47. ExpiresByType video/x-ms-asf "access plus 1 month"
  48. ExpiresByType x-world/x-vrml "access plus 1 month"
  49.  
  50. # Fonts
  51. ExpiresByType font/truetype "access plus 1 year"
  52. ExpiresByType font/opentype "access plus 1 year"
  53. ExpiresByType application/x-font-ttf "access plus 1 year"
  54. ExpiresByType application/x-font-woff "access plus 1 year"
  55. ExpiresByType application/font-woff "access plus 1 year"
  56. ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
  57.  
  58. # Scripts and styles
  59. ExpiresByType text/css "access plus 1 year"
  60. ExpiresByType text/javascript "access plus 1 year"
  61. ExpiresByType text/x-javascript "access plus 1 year"
  62. ExpiresByType application/javascript "access plus 1 year"
  63. ExpiresByType application/x-javascript "access plus 1 year"
  64.  
  65. # Data
  66. ExpiresByType application/pdf "access plus 1 month"
  67. ExpiresByType image/vnd.wap.wbmp "access plus 1 month"
  68. ExpiresByType application/vnd.wap.wbxml "access plus 1 month"
  69. ExpiresByType application/smil "access plus 1 month"
  70.  
  71. # Text
  72. ExpiresByType text/html "access plus 1 minute"
  73. ExpiresByType text/plain "access plus 1 minute"
  74. ExpiresByType text/xml "access plus 1 minute"
  75. ExpiresByType application/xml "access plus 1 minute"
  76.  
  77. # RSS
  78. ExpiresByType application/rss+xml "access plus 1 hour"
  79. ExpiresByType application/atom+xml "access plus 1 hour"
  80. ExpiresByType text/x-component "access plus 1 hour"
  81.  
  82. # Live data
  83. ExpiresByType application/json "access plus 0 seconds"
  84. ExpiresByType application/ld+json "access plus 0 seconds"
  85.  
  86. # Manifest
  87. ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
  88. ExpiresByType text/cache-manifest "access plus 0 seconds"
  89.  
  90. # PHP - diable to be cached unless they explicitly send cache headers themselves.
  91. <FilesMatch \.php$>
  92. ExpiresActive Off
  93. </FilesMatch>
  94.  
  95. </IfModule>
[APACHE] pobierz, plaintext


[APACHE] pobierz, plaintext
  1. <IfModule mod_deflate.c>
  2. # Compress HTML, CSS, JavaScript, Text, XML and fonts
  3. AddOutputFilterByType DEFLATE application/javascript
  4. AddOutputFilterByType DEFLATE application/rss+xml
  5. AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  6. AddOutputFilterByType DEFLATE application/x-font
  7. AddOutputFilterByType DEFLATE application/x-font-opentype
  8. AddOutputFilterByType DEFLATE application/x-font-otf
  9. AddOutputFilterByType DEFLATE application/x-font-truetype
  10. AddOutputFilterByType DEFLATE application/x-font-ttf
  11. AddOutputFilterByType DEFLATE application/x-javascript
  12. AddOutputFilterByType DEFLATE application/xhtml+xml
  13. AddOutputFilterByType DEFLATE application/xml
  14. AddOutputFilterByType DEFLATE font/opentype
  15. AddOutputFilterByType DEFLATE font/otf
  16. AddOutputFilterByType DEFLATE font/ttf
  17. AddOutputFilterByType DEFLATE image/svg+xml
  18. AddOutputFilterByType DEFLATE image/x-icon
  19. AddOutputFilterByType DEFLATE text/css
  20. AddOutputFilterByType DEFLATE text/html
  21. AddOutputFilterByType DEFLATE text/javascript
  22. AddOutputFilterByType DEFLATE text/plain
  23. AddOutputFilterByType DEFLATE text/xml
  24. </IfModule>
[APACHE] pobierz, plaintext


Ten Twój kod działa za dobrze... chciałbym wyłączyć z cachowania katalog admin. Powiesz mi jak to zrobić ?


--------------------
Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 12:41