Тогда уже проще так:
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^(.*)\.html$ /index.php?$1 [L]
ExpiresActive on
ExpiresByType text/html "access plus 3 day"
В последней строке можно указать и другое время или тип (поищи в яндексе по запросу "mod_expires").
А вообще, если сервер не вылает дату статического файла, то он криво настроен, чего бы ни говорил хостер.
Если не выдает кодировку, можно в .htaccess добавить:
AddDefaultCharset windows-1251
(или другую, например koi-8r)
Если рассматривать файл как server-parsed, (кстати на каталог должна быть выставлена опция Includes (можно в том же .htaccess вставить "Options Includes", то синтаксис должен быть такой:
<!--#include virtual="скрипт.php" -->
Но скрипту могут не передаться все серверные переменные, нужные ему и тогда придется в скрипте их извлекать специально.
С другой стороны, объявив .html файлы php скриптами (AddType application/x-httpd-php .htm .html), упрощаем написание (можно вставлять php код), но загружаем сервер интерпретацией массы посторонних файлов (все прогоняется через php) и заметно снижаем безопасность.
Нет такого типа "images/jpeg", который отдает твоя картинка!
(http://www.proximalogic.com/images/logo.jpg)
Есть image/jpeg.
Если вставлять "ForceType application/x-httpd-php", не указывая
к каким файлам это относить, то на сервере должны лежать исключительно php скрипты и ничего больше.
PS: Не в обиду будь сказано, понимаю, что за предлагаемые этой конторой ~$100 не то что работать, но и ходить туда западло, но, хотя бы для себя стоит внимательно почитать доки, дабы знать точно, что делаешь. Sorry.
Пришлось мне самому вызвать в браузере
http://www.proximalogic.com/images/logo.jpg
Так бы и сказал, что картинки скриптом выдаются.
Первое: Parse error: parse error in /home/proxima/public_html/images/logo.jpg on line 102
Кстати, если бы не эта ошибка, большинство браузеров выбрало правильный тип из расширения файла.
Второе - скрипт должен выдавать:
header("Content-type: image/gif");
А в том примере, последняя строка должна быть:
RewriteRule .+\/(.+)$ http://www.proximalogic.com/images/$1 [L]
Или, если тип картинок один (.gif), то можно сделать так:
RewriteCond %{REQUEST_URI} .*\.gif$ [NC]
RewriteRule .+\/(.+)$ http://www.proximalogic.com/images/$1 [L,T=image/gif]
PS:
И попробуйте все-таки вставить url картинки в адресную строку браузера. Если из ответа не будет ясно, что на самом деле запрашивается, то надо посмотреть последнюю строку error_log.
Во-первых, не помешает в конце строки RewriteRule добавить [L],
(Зачем поисковику код 302?).
Во-вторых, интересно посмотреть на ответ сервера не при запросе индекса или другого хтмл'а, а непосредственно картинки. (в браузере правой кнопкой->свойства/адрес рисунка)
И, наконец добрался-таки до упомянутой статьи и прочитал, что подразумевалось под "виртуальной директорией" :)
Не исключено, что такая конструкция, добавленная после остальных правил, поможет:
RewriteCond %{REQUEST_URI} .*\.jpg$ [NC,OR] RewriteCond %{REQUEST_URI} .*\.png$ [NC,OR] RewriteCond %{REQUEST_URI} .*\.gif$ [NC] RewriteCond %{REQUEST_FILENAME} !-F RewriteRule .+\/(.+)$ http://ваш_сайт.ru/$1 [L]
В последней строке должен быть правильный путь к картинкам.
А что отдает сервер? Какой код ответа и/или заголовки? Можно посмотреть этим сервисом.
Можно, конечно, написать что-то вроде этого:
AddType image/jpeg .jpg
AddHandler image/jpeg .jpg
AddType image/gif .gif
AddHandler image/gif .gif
<FilesMatch "(\.jpg)$">
ForceType image/jpeg
</FilesMatch>
<FilesMatch "(\.gif)$">
ForceType image/gif
Но мне кажется, что дело здесь в чем-то еще. Настройки этих типов у сервера уже должны быть. Лучше всего в таких случаях помогает изучение логов сервера.
2.
Если в .html файле вставить мета тэг base, например так:
<head>
<meta name="base" content="http://ваш_сайт.ru/">
...
</head>
тогда все относительные ссылки будут формироваться браузером от этой базы.
3.
Перечисленные строки можно вставить в httpd.conf или в .htaccess.ъ
Второе - проще ;)
1. В mod_rewrite существует три контекста директив:
В главном конфиге сервера.
В конфиге вирт. хоста.
В .htaccess
Данная ошибка говорит о том, что RewriteBase можно использовать только в .htaccess и нельзя в других контекстах.
2. Не совсем понятно, что значит "забрел в виртуальную директорию". А вообще есть: <meta name="base" content="...">
AddType application/msword .doc
AddType application/vnd.ms-excel .xls
Или, если в mime.types они уже есть:
<FilesMatch "(\.doc$)">
ForceType application/msword
<FilesMatch "(\.xls$)">
ForceType application/vnd.ms-excel
4. IMHO, только тремя последовательными RewriteRule.