Правильный вопрос. +1
А решается это, например, так:
# Сначала задаем правила переброски языкового поддомена RewriteCond %{HTTP_HOST} ^([a-z]{2})\.my_host\.com RewriteRule ^(.*\.php) $1?lang=%1 [QSA] # Затем все остальные правила RewriteRule ^(.*)-info-(.*).html$ info.php?info_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-index-(.*).html$ index.php?index_id=$2&%{QUERY_STRING} и.т.д.
Спасибо всем кто подсказывал за помощь.
Именно его!
PartW, мое мнение - есть смысл!
Но и с роботами нужно придумать как воевать :)
nash, а еще почитай эту статью:
Правильное HTTP-кэширование: httplib2
Может тоже поможет.
woodworld, что мешает сделать общую БД со статьями для всех сайтов (если у сайта уже есть своя локальная БД, то общая будет использоваться как дополнительная)?
Истечение срока жизни страницы
Самым простым в использовании заголовком является заголовок Expire:
<?php /** * Посылает заголовок Expires HTTP 1.0. * @param int количество секунд до времени истечения срока жизни */ function setExpires($expires){ header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . 'GMT'); } // Устанавливаем заголовок времени истечения срока жизни Expires setExpires(10); // Отображаем echo 'Эта страница самоуничтожится через 10 секунд<br />'; echo 'Сейчас ' . gmdate('H:i:s') . ' GMT<br />'; echo '<a href="' . $_SERVER['PHP_SELF'] . '">Посмотреть вновь </a><br />'; ?>
Более практично использовать заголовки Last-Modified и If-Modified-Since, доступные в HTTP 1.0. Технически он известен, как выполнение условного GET-запроса, вы возвращаете любой контент, основываясь на условии пришедшего заголовка запроса If-Modified-Since.
<?php // Получаем заголовки запроса клиента – только для Apache $request = getallheaders(); if (isset($request['If-Modified-Since'])) { // Разделяем If-Modified-Since (Netscape < v6 отдаёт их неправильно) $modifiedSince = explode(';', $request['If-Modified-Since']); // Преобразуем запрос клиента If-Modified-Since в таймштамп $modifiedSince = strtotime($modifiedSince[0]); } else { // Устанавливаем время модификации в ноль $modifiedSince = 0; } ?>
Наконец, мы проверяем, был ли модифицирован кэш с тех пор как посетитель получал эту страницу в последний раз. Если это не так, мы просто посылаем в заголовке отклик Not Modified и прекращаем выполнение скрипта, не нагружая канал передачи данных
<?php // Сравниваем время последней модификации контента с кэшем клиента if ($lastModified <= $modifiedSince) { // Разгружаем канал передачи данных! header('HTTP/1.1 304 Not Modified'); exit(); } ?>
А под кэширование я так вижу ты понимаешь кэширование на стороне прокси/браузера?
Т.е. правильно ли я понял, что сайты под твоим контролем?
На ВСЕХ, ВСЕХ, ВСЕХ?