Lupus

Lupus
Рейтинг
241
Регистрация
02.11.2002

Тогда уже проще так:

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 не вышло

Если рассматривать файл как 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]

RewriteCond %{REQUEST_FILENAME} !-F

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

</FilesMatch>

Но мне кажется, что дело здесь в чем-то еще. Настройки этих типов у сервера уже должны быть. Лучше всего в таких случаях помогает изучение логов сервера.

подробней описать 2 и 3 пункт

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="...">

3.

AddType application/msword .doc

AddType application/vnd.ms-excel .xls

Или, если в mime.types они уже есть:

<FilesMatch "(\.doc$)">

ForceType application/msword

</FilesMatch>

<FilesMatch "(\.xls$)">

ForceType application/vnd.ms-excel

</FilesMatch>

4. IMHO, только тремя последовательными RewriteRule.

Всего: 15148