Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Настройка xtaccess


Recommended Posts

Доброго дня форумчане.

Поиском поискал, не нашел такой темы. Так, что если такая есть-я не ленился

Я тут погуглил...понадергал так сказать всего и вся в хтаксес.
 Прошу мнения имеет ли право на жизнь такой хтаксес. У меня open Cart 2.2

Options +FollowSymlinks

#Запрещаем загрузку файлов с внешних сайтов
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?мой сайт.ru/ [nc]
RewriteRule .*.(gif|jpg|png)$ http://мой сайт.ru/image/data/oops.jpg[nc]

# Prevent Directoy listing
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "\.(tpl|ini|log)">
Order deny,allow
Deny from all
</FilesMatch>


RewriteEngine On

RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^yandexmarket.xml$ index.php?route=feed/yandex_market [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

#Блокируем все ссылки, содержащие <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]

# Редиректы


RewriteCond %{HTTP_HOST} ^www.мой сайт\.ru$ [NC]
RewriteRule ^(.*)$ http://мой сайт.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/
RewriteRule ^index\.html$ / [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]
RewriteCond %{QUERY_STRING} ^route=common/home$
RewriteCond %{REQUEST_METHOD} !^POST$
RewriteRule ^index\.php$ http://%{HTTP_HOST}? [R=301,L]


#Блокируем плохих ботов и роботов
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
SetEnvIfNoCase user-Agent ^Zeus [NC]
<limit get="" post="" head="">
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</limit>


#Защита от хотлинка
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?мой сайт\.ru/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Замените /images/nohotlink.jpg на изображение с запрещением хотлинка
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/data/oops.jpg [L]

# Запретить другим сайтам использовать прямые ссылки на ваши картинки
RewriteCond %{HTTP_REFERER} !^$
# Дальше список разрешенных доменов
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт1.ru.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт1ru:80.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт12.ru.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yсайт2.ru:80.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт3.ru.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт3.ru:80.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт4.ru.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт4.ru:80.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт5.ru.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?сайт5: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)$ image/data/oops.jpg [NC,L]



# Конфигурируем сайт для видео HTML5

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/cart.png
AddType video/ogg .ogv
AddType video/ogg .ogg
AddType video/mp4 .mp4
AddType video/webm .webm
AddType application/x-shockwave-flash swf


#Устанавливаем e-mail адрес по-умолчанию для администратора сервера
ServerSignature EMail
SetEnv SERVER_ADMIN моя почта@mail.ru


# отключаем вывод ошибок пользователям
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
# заносим ошибки в журнал
php_flag log_errors on
php_value error_log /system/to/php_error.log

 

Змінено користувачем DYATEL
Надіслати
Поділитися на інших сайтах


Главное правило - все редиректы до блока с

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

И зачем вам дважды RewriteEngine On (вопрос риторический)?

 

А второе правило: не использовать почту mail.ru.

 

И вообще понатыкано всё бездумно: что-то дублируется, что-то реализовано не самым удачным образом, что-то вообще не нужно.

 

Какие у вас есть реальные задачи для сервера?

 

7 часов назад, DYATEL сказал:

Поиском поискал, не нашел такой темы.

И не удивительно, ведь вы искали то, чего не существует. А если правильно название указать, то тем куча:

https://opencartforum.com/search/?q=htaccess&type=forums_topic&sortby=newest

 

 

  • +1 1
Надіслати
Поділитися на інших сайтах


Добрый день.

 

Так так-то хотелось бы все реализовать в хтаксесе, т.е.:

#Запрещаем загрузку файлов с внешних сайтов

редиректы

#Блокируем все ссылки, содержащие <script>

#Блокируем плохих ботов и роботов

#Защита от хотлинка

# Запретить другим сайтам использовать прямые ссылки на ваши картинки

 

Остальное вроде не столь важно

 

Но........ Если все это не нужно, то тогда если можно, киньте рабочий вариант.

Спасибо

 

Надіслати
Поділитися на інших сайтах


Нашел тему по нормальному забив поиск. Там все есть по правильному хтаксесу. Но по остальным пожеланиям, если есть мнения, то буду рад выслушать

Спасибо.

Надіслати
Поділитися на інших сайтах


4 часа назад, DYATEL сказал:

#Запрещаем загрузку файлов с внешних сайтов

 

4 часа назад, DYATEL сказал:

#Защита от хотлинка

 

4 часа назад, DYATEL сказал:

# Запретить другим сайтам использовать прямые ссылки на ваши картинки

 

Вот это всё - одно и то же!

Хотлинкинг - это вставка изображений с вашего сайта на других сайтах.

 

Если вам нужна просто защита от хотлинкинга, то зачем полотнище разрешённых хостов?

 

 

 

4 часа назад, DYATEL сказал:

#Блокируем все ссылки, содержащие <script>

В ОК нет с этим проблем: все данные запросов обрабатываются через htmlspecialchars.

  • +1 1
Надіслати
Поділитися на інших сайтах


Еще вопросик, так сказать для самообразования.

Окончания строк в хтаксесе, такие как:

 

[NC]

[NC,OR]

[L]

[L,QSA]

[R=301,L]

что значат? или есть где прочесть про это?

Надіслати
Поділитися на інших сайтах


ПО приведенной выше ссылке не нашел ответ, но поняв в какую сторону копать нарыл следующее: (вдруг кому надо будет)

(Взято с какого-то сайта)

.......это флаги правил. Флаги - дополнительные опции для данного правила, которые перечисляются в квадратных скобках через запятую.

* R (redirect) останавливает процесс преобразования и возвращает результат браузеру клиента как редирект на данную страницу (302, MOVED TEMPORARY). С данным флагом можно указать другой код результата, например "R=301" возвратит редирект с кодом 301 (MOVED PERMANENTLY). 
* F (forbidden) возвращает ошибку 403 (FORBIDDEN). 
* G (gone) возвращает ошибку 410 (GONE). 
* P (proxy) - по этому флагу Apache выполняет подзапрос (sub-request) к указанной странице с использованием программного модуля mod_proxy, при этом пользователь ничего не узнает об этом подзапросе. Если модуль mod_proxy не входит в состав вашей сборки Apache, то применение данного флага вызовет ошибку. 
* L (last) останавливает процесс преобразования, и текущая ссылка считается окончательной. 
* N (next) запускает процесс преобразования с первого по порядку правила. 
* C (chain) объединяет несколько правил в цепочку. Если первое правило цепочки «не срабатывает», то вся цепочка игнорируется. 
* NS (nosubreq) разрешает «срабатывание» правила только для настоящих запросов, игнорируя подзапросы (подзапрос может быть вызван, например, включением файла при помощи директивы SSI). 
* NC (nocase) отключает проверку регистра символов. 
* QSA (qsappend) добавляет исходные параметры запроса (query string) к замене. Если замена не включает в себя новые параметры запроса, то исходные параметры запроса добавляются автоматически. Если же включает, то без флага QSA исходные параметры запроса будут утеряны. 
* PT (passthrough) останавливает процесс преобразования и передает полученную новую ссылку дальше «по цепочке», чтобы над ней могли «поработать» директивы Alias, ScriptAlias, Redirect и им подобные (тогда как при флаге L новая ссылка считается окончательной и не подлежит дальнейшей обработке). 
* S (skip) пропускает следующее правило, если данное правило «сработало». Можно пропускать несколько правил, если указать их количество, например: «S=3». 
* E (env) устанавливает переменную окружения, например: «E=переменная:значение».

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.