Архив

Ноябрь 2015

Всего: 11 записей

php: header Last-Modified

$LastModified_unix=1234567890;//time()
$LastModified=gmdate("D, d M Y H:i:s \G\M\T",$LastModified_unix);
$IfModifiedSince=false;
if(isset($_ENV['HTTP_IF_MODIFIED_SINCE'])){
	$IfModifiedSince=strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'],5));
}
if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])){
	$IfModifiedSince=strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'],5));
}
if($IfModifiedSince&&$IfModifiedSince>=$LastModified_unix){
	header($_SERVER['SERVER_PROTOCOL'].' 304 Not Modified');
	exit;
}
header('Last-Modified: '.$LastModified);

htaccess: Дубли страниц с несколькими слешами подряд в URL

Усовершенствованный вариант: https://krylov.org.ua/htaccess-dubli-stranits-s-neskolkimi-slesham-2/

Необходимо настроить 301 редирект со всех страниц, где в теле URL больше одного слеша подряд (за исключением http:// и знаков «/» в конце URL) на аналогичные URL с одним знаком «/».
Также необходимо настроить 301 редирект со всех страниц, где в конце URL присутствует знак «/» на аналогичные URL без знака «/».

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]

php: Дубли страниц по регистру URL

Необходимо настроить 301-й редирект со всех страниц сайта с символами верхнего регистра в URL на аналогичные страницы с нижним регистром.
При этом редирект не должен затрагивать GET параметры после знака «?» в URL.

$url_get=urldecode($_SERVER['REQUEST_URI']);
if(strpos($url_get,'?')!==false){
	$a=explode("?",$url_get);
	$a[0]=mb_strtolower($a[0]);
	$newurl=$a[0]."?".$a[1];
}
else{
	$newurl=mb_strtolower($url_get);
}
if(urldecode($_SERVER['REQUEST_URI'])!=$newurl){
	header('Location: '.$newurl,true,301);
}