Пришлось мне самому вызвать в браузере
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
Но мне кажется, что дело здесь в чем-то еще. Настройки этих типов у сервера уже должны быть. Лучше всего в таких случаях помогает изучение логов сервера.
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.
Как правило, работающий с linux (или любой другой *.nix), работает с несколькими системами, в том числе м с виндой. А не использующие linux,
признают винду и только ее. Надо признать, что из-за обилия софта и значительно более дружественного интерфейса, у конечных пользователей винда вне конкуренции. Ну а *nix'ы в первую очередь нужны программерам и админам (IMHO). Еще, при разработке сложных интерактивных сайтов, часто ставят и настраивают ту же систему, что и на хостинге, чтобы отлаживать скрипты в аналогичной среде и не ожидать сюрпризов при переносе.
[off]
Идет мужик по пирсу. На пришвартованном пароходе, у борта стоит другой.
С берега:
- Эй, приятель, вам старпом нужен?
С борта:
- У нас есть.
- А боцман нужен?
- Я боцман!
- Ну, может механик нужен?
- Никого не надо, все есть.
- Ваше счастье, а то бы я вам наработал...
[/off]
Прошу прощения, что вмешиваюсь, но, IMHO, админ хостинга не станет менять настройки php.ini по умолчанию, рискуя получить кучу жалоб от хозяев других сайтов этого сервера, на которые влияют глобальные настройки php.
Back Door Man вполне ясно посоветовал:
Это значит, что в файле .htaccess, лежащем в папке форума должна быть упомянутая сторока. Если файла .htaccess там нет, его надо создать.
Вообще, если php смонтирован, как модуль apache, то многими параметрами можно управлять через .htaccess, используя php_flag, php_value, php_admin_flag, php_admin_value.
Это не просто претит. Это убивает в человеке профессионала. Ему дают понять, что он не специалист, а "штатная единица". И должен вести себя соответственно.