Всем привет, создал (точнее скопипастил) некоторые правила для .htaccess. В основном нужны были скрытие файлов директорий и указавние страниц ошибок. Вот содержимое: Спойлер: .htaccess Код (Text): <files .htaccess=""> order allow,deny deny from all </files> FileETag MTime Size <ifmodule mod_expires.c> <filesmatch ".(jpg|gif|png|css|js)$"> ExpiresActive on ExpiresDefault «access plus 1 year» </filesmatch> </ifmodule> Options +FollowSymLinks #Запускаем url_rewriting RewriteEngine On #Блокируем все ссылки, содержащие <script> RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] #Блокируем все скрипты, которые пытаются изменить переменные PHP Globals: RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] #Блокируем все скрипты, которые пытаются изменить переменную _REQUEST: RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) #Перенаправляем все подобные на страницу с ошибкой 403 — запрещено RewriteRule ^(.*)$ index.php [F,L] ErrorDocument 400 http://localhost/zns/root/error_pages/400.html ErrorDocument 401 http://localhost/zns/root/error_pages/401.html ErrorDocument 403 http://localhost/zns/root/error_pages/403.html ErrorDocument 404 http://localhost/zns/root/error_pages/404.html ErrorDocument 500 http://localhost/zns/root/error_pages/500.html # Запретить другим сайтам использовать прямые ссылки на ваши картинки RewriteCond %{HTTP_REFERER} !^$ # Дальше список разрешенных доменов RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?sitename.ru.*$ [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?sitename.ru:80.*$ [NC] # IP сайта (домена) RewriteCond %{HTTP_REFERER} !^http(s)?://111.111.111.111.*$ [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://111.111.111.111:80.*$ [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yandex.ru [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google. [NC] # RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?домен_дружественного сайта.ru [NC] RewriteCond %{HTTP_REFERER} !search?q=cache [NC] # Форматы файлов, для которых устанавливается защита # Выводит ошибку 403 # RewriteRule \.(jpe?g|bmp|gif|png|css|mov|swf|dcr|exe|rar|avi|vob|zip|pdf|txt|doc|flv|mp3|mp4)$ — [NC,F,L] # или показывает спецрисунок вместо указанного RewriteRule .*\.(jpe?g|bmp|gif|png)$ files/images/nohotlink.jpg [NC,L] Options -Indexes В чём собственно проблема, скрипты не стали загружать изображение из других директорий. Архитектура такова: Спойлер: Показать - www - index.php - public - login.php- root - img - logo.png- server Что происходит, из index.php подключаю login.php в котором пытаюсь загрузить logo.png HTML: <img src="root/img/logo.png"> Но не получается, как только убераю все правила из .htaccess, то подключается. Что можно сделать? Помогите, пожалуйста!
Содержимое .htaccess – полная хрень (без обид). Ну видимо при сбоях адреса страниц, в которых подцепляется картинка, имеют вложенность, отличную от «корневого уровня». Делайте все ссылки на обвес абсолютными (начинающимися со слэша).