За последние 24 часа нас посетили 23008 программистов и 1225 роботов. Сейчас ищут 878 программистов ...

.htaccess

Тема в разделе "PHP для новичков", создана пользователем Geebrox, 16 июл 2018.

Метки:
  1. Geebrox

    Geebrox Активный пользователь

    С нами с:
    30 июл 2016
    Сообщения:
    24
    Симпатии:
    1
    Всем привет, создал (точнее скопипастил) некоторые правила для .htaccess. В основном нужны были скрытие файлов директорий и указавние страниц ошибок.

    Вот содержимое:
    Код (Text):
    1. <files .htaccess="">
    2. order allow,deny
    3. deny from all
    4. </files>
    5.  
    6. FileETag MTime Size
    7. <ifmodule mod_expires.c>
    8. <filesmatch ".(jpg|gif|png|css|js)$">
    9. ExpiresActive on
    10. ExpiresDefault «access plus 1 year»
    11. </filesmatch>
    12. </ifmodule>
    13.  
    14. Options +FollowSymLinks
    15. #Запускаем url_rewriting
    16. RewriteEngine On
    17. #Блокируем все ссылки, содержащие <script>
    18. RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
    19. #Блокируем все скрипты, которые пытаются изменить переменные PHP Globals:
    20. RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
    21. #Блокируем все скрипты, которые пытаются изменить переменную _REQUEST:
    22. RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
    23. #Перенаправляем все подобные на страницу с ошибкой 403 — запрещено
    24. RewriteRule ^(.*)$ index.php [F,L]
    25.  
    26. ErrorDocument 400 http://localhost/zns/root/error_pages/400.html
    27. ErrorDocument 401 http://localhost/zns/root/error_pages/401.html
    28. ErrorDocument 403 http://localhost/zns/root/error_pages/403.html
    29. ErrorDocument 404 http://localhost/zns/root/error_pages/404.html
    30. ErrorDocument 500 http://localhost/zns/root/error_pages/500.html
    31.  
    32. # Запретить другим сайтам использовать прямые ссылки на ваши картинки
    33. RewriteCond %{HTTP_REFERER} !^$
    34. # Дальше список разрешенных доменов
    35. RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?sitename.ru.*$ [NC]
    36. RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?sitename.ru:80.*$ [NC]
    37. # IP сайта (домена)
    38. RewriteCond %{HTTP_REFERER} !^http(s)?://111.111.111.111.*$ [NC]
    39. RewriteCond %{HTTP_REFERER} !^http(s)?://111.111.111.111:80.*$ [NC]
    40. RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yandex.ru [NC]
    41. RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google. [NC]
    42. # RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?домен_дружественного сайта.ru [NC]
    43. RewriteCond %{HTTP_REFERER} !search?q=cache [NC]
    44. # Форматы файлов, для которых устанавливается защита
    45. # Выводит ошибку 403
    46. # RewriteRule \.(jpe?g|bmp|gif|png|css|mov|swf|dcr|exe|rar|avi|vob|zip|pdf|txt|doc|flv|mp3|mp4)$ — [NC,F,L]
    47. # или показывает спецрисунок вместо указанного
    48. RewriteRule .*\.(jpe?g|bmp|gif|png)$ files/images/nohotlink.jpg [NC,L]
    49.  
    50. Options -Indexes

    В чём собственно проблема, скрипты не стали загружать изображение из других директорий.
    Архитектура такова:
    - www
    - index.php
    - public
    - login.php
    - root
    - img
    - logo.png
    - server

    Что происходит, из index.php подключаю login.php в котором пытаюсь загрузить logo.png
    HTML:
    1. <img src="root/img/logo.png">
    Но не получается, как только убераю все правила из .htaccess, то подключается. Что можно сделать? Помогите, пожалуйста!
     
    #1 Geebrox, 16 июл 2018
    Последнее редактирование: 16 июл 2018
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    Содержимое .htaccess – полная хрень (без обид).

    Ну видимо при сбоях адреса страниц, в которых подцепляется картинка, имеют вложенность, отличную от «корневого уровня». Делайте все ссылки на обвес абсолютными (начинающимися со слэша).