скрытое меню

начинаем изучать тему

Имеем некий linux хостинг
имеем доступ к .htaccess

Первые выводы :

Статические страницы ,точнее запросы к статическим документам - это когда у вас есть некий файл в файловой системе сервера и его запрашивают.
Естественно это *.css, *.js, *.html и т.д.

Сюда не попадает *.php т.к. это динамически генерируемый документ.

Примечание : страница оканчивающаяся на / - это НЕ *.php , а это будет *.html (т.к. здесь идет на самом деле запрос вида /index.html с последующим редиректом).

Итак на запрос главной страницы kkmspb.ru мы устойчиво получаем (в FF смотрим по F12):

HTTP/1.1 200 OK
Server: nginx/1.10.2
Date: Sun, 06 Jan 2019 21:54:55 GMT
Content-Type: text/html
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: PHP/5.3.3
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=55db324644973fae2ecf97e8ac0c193e; expires=Mon, 07-Jan-2019 21:54:55 GMT; path=/
Set-Cookie: mobile=0; expires=Tue, 05-Feb-2019 21:54:55 GMT
X-SERVER: linwebng09
Last-Modified: Sat, 05 Jan 2019 19:03:03 GMT
X-SERVER: linwebng09

Http://kkmspb.ru/contacts.php

HTTP/1.1 200 OK
Server: nginx/1.10.2
Date: Sun, 06 Jan 2019 21:58:05 GMT
Content-Type: text/html
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: PHP/5.3.3
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=c112770036f1a9ec9512fa8fea95dfd5; expires=Mon, 07-Jan-2019 21:58:05 GMT; path=/
Set-Cookie: mobile=0; expires=Tue, 05-Feb-2019 21:58:05 GMT
X-SERVER: linwebng04
Last-Modified: Sun, 06 Jan 2019 21:58:05 GMT
X-SERVER: linwebng04

Http://kkmspb.ru/kontrolno-kassovaya-tehnika/

HTTP/1.1 200 OK
Server: nginx/1.10.2
Date: Sun, 06 Jan 2019 22:01:22 GMT
Content-Type: text/html
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: PHP/5.3.3
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=7d7dc697e00fa9c195567ff9169561c2; expires=Mon, 07-Jan-2019 22:01:22 GMT; path=/
Set-Cookie: mobile=0; expires=Tue, 05-Feb-2019 22:01:22 GMT
X-SERVER: linwebng12
Last-Modified: Sat, 05 Jan 2019 20:03:02 GMT
X-SERVER: linwebng12

Тут почти все идентично:
у всех Content-Type: text/html - по-видимому Content-Type: text/php НЕ бывает!?
Last-Modified - это мы в php кидаем заголовок (берем параметр из базы MySql по своей странице)
Date - это сервер сам где-то кидает текщую дату сервера (генерируемого документа)
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 говорит не сохранять кэш страницы Клиенту(вашему браузеру). Т.е. страница всегда меняется как-бы!

Все тут кроме Last-Modified устанавливает сам apache сервер и мы не можем повлиять кстати.

Теперь вопрос - а надо ли пытаться менять эти параметры для генерируемых страниц. Например цену поменяли на странице у товара, а странице до этого указали хранится в кэше неделю. Мне кажется даже если хоть одна буква меняется для поисковика это должна быть уже другая страница.

Теперь по-поводу индексации поисковиками - если контент страницы меняется в части цен , то это не так существенно и можно смело НЕ устанавливать Last-Modified по этому поводу (я так думаю).

Все это было проверено при таких настройках в htaccess:

RewriteEngine on

Options +FollowSymlinks

RewriteBase /
RewriteRule ^.htaccess$ - [F]

# /index.(html|php) redirect on /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.(html|php|htm)?\ HTTP/
RewriteRule ^(.*)index\.(html|php|htm)?$ http://kkmspb.ru/$1 [R=301,L]

#<IfModule mod_rewrite.c>

<IfModule mod_expires.c>
	# необходимость обновления, нет кешированию
	ExpiresActive on
	ExpiresDefault "access plus 1 month"
	ExpiresByType image/jpg "access plus 1 month"
	ExpiresByType image/jpeg "access plus 1 month"
	ExpiresByType image/gif "access plus 1 month"
	ExpiresByType image/png "access plus 1 month"
	#ExpiresByType text/html "access plus 1 month"
	#ExpiresByType text/php "access plus 1 month"
	ExpiresByType text/css "access plus 1 month"
	#216000=60*60*60=60hour
	ExpiresByType text/javascript "access 1 month"
	# ! ExpiresByType ! = <-'expires'	
	
	#<FilesMatch \.(js)$>
	#	ExpiresDefault "access plus 1 day"
	##</FilesMatch>
	<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf|ttf|)$">
		Header set Cache-Control "max-age=648000, public"
		# not working
	</FilesMatch>
</IfModule>

<IfModule mod_headers.c> not working
        Header append Cache-Control "no-cache, must-revalidate"
# not working
</IfModule>