вопрос
У меня в index.php прописана функция удаления множественных слешей
Затем кеширование
Как запретить кеширование файлов со множественными слешами, а то получается,
site.ru/link.html
site.ru/////link.html
site.ru//////////////////link.html
одни и те же файлы многократно сохраняются в кэш по разным линкам, а уже затем редиректятся на нужную страницу. Папка кэша жиреет на глазах,..
$path = $_SERVER['REQUEST_URI'];
if (preg_match('#//+#', $path))
{
$path = preg_replace('#//+#', '/', $path);
header('Location: http://' . $_SERVER['HTTP_HOST'] . $path, true, 301);
}
Затем кеширование
$cache_file = $_SERVER['DOCUMENT_ROOT'].'/cache/'.md5( $_SERVER['REQUEST_URI'] ).'.tmp';
if ( file_exists( $cache_file ) && ( time( ) - filemtime( $cache_file ) ) < 9000 )
exit( include( $cache_file ) );
else
{
ob_start( );
include($file);
$fopendb = fopen( $cache_file, 'w+' );
flock( $fopendb, LOCK_EX );
fwrite( $fopendb, ob_get_contents( ) );
flock( $fopendb, LOCK_UN );
fclose( $fopendb );
ob_end_flush( );
}
Как запретить кеширование файлов со множественными слешами, а то получается,
site.ru/link.html
site.ru/////link.html
site.ru//////////////////link.html
одни и те же файлы многократно сохраняются в кэш по разным линкам, а уже затем редиректятся на нужную страницу. Папка кэша жиреет на глазах,..
$cache_file = $_SERVER['DOCUMENT_ROOT'].'/cache/'.md5( $path ).'.tmp';
при условии что переменная $path до этого больше не переопределяется.