17 правил .htaccess, которые должен знать любой веб-мастер. Opencart правильный htaccess


Настройка htaccess

17 правил .htaccess, которые должен знать любой веб-мастер

17 правил .htaccess, которые должен знать любой веб-мастер

 

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

Давайте разберём 17 основных правил, который должен знать любой веб-мастер, желающий работать с файлом .htaccess.

Установка запрета на загрузку файлов с других ресурсов

Некоторые пользователи могут загрузить определённый файл на ваш ресурс (изображения, видео), после чего разместив его на своём. Таким образом, все запросы к файлу будут идти через ваш сервер, нагружая его.

Если разместить в .htaccess нижеприведённый код, то, открыв страницу с файлом на вашем ресурсе, пользователи лишь увидят сообщение об ошибке. В пределах своего ресурса запрет распространяться не будет, так что можно не беспокоиться о том, что пользователи не увидят даже загруженный вами (администратором) файл.

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

 

Используя любую команду, необходимо заменять адрес сайта (site.com) на свой.

Блокировка нежелательных User Agents

Иногда на сайте могут появиться переходы различных ботов, спамеров, других сервисов и т. д. В маленьком количестве они не принесут большого вреда, но когда таких переходов много, может появиться немаленькая нагрузка на сервер. Если сразу заблокировать нежелательные User Agents, то можно огородиться от таких посещений.

В интернете можно найти полный список всех User Agents, которые являются потенциально опасными.

#Блокируем плохих ботов и роботов 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>

Блокировка IP-адресов

Если нужно подключить доступ к сайту только жителям определённых стран, или даже дать возможность посещать ресурс лишь некоторым людям, то неподходящие IP-адреса можно заблокировать.

В нижеприведенной команде нужно прописать только те IP, которым будет открыт доступ. Для всех остальных он будет заблокирован. Вместо domainname, здесь также нужно указать своё доменное имя.

#Запрещаем доступ для всех, кроме указанных IP-адресов ErrorDocument 403 https://www.domainname.com Order deny,allow Deny from all Allow from 124.34.48.165 Allow from 102.54.68.123

301 Редирект

Поисковые системы не приветствуют перенаправление с одной страницы на другую. Если же создать редирект через файл .htaccess, то от поисковых систем санкций не последует.

#Настраиваем SEO-Friendly 301 Redirect Redirect 301 /1/file.html https://www.site.com/2/file.html

Редактирование страницы ошибки 404

Если появилось желание сделать сайт ещё красочней, то можно отредактировать страницу ошибки 404. В стандартном варианте пользователю просто указывается, что данной страницы не существует. Мы же можем добавить какое-нибудь изображение, изменить текст и т. д.

Для начала нужно создать эту страницу и залить на хостинг. В .htaccess остаётся прописать адрес до файла.

ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php

Чёрный список IP-адресов

Если на сайте появился злостный спамер или агрессивный комментатор, то можно занести его IP в чёрный список. Больше с этого адреса на ресурс он зайти не сможет. Если сайт работает на CMS, то узнать IP можно в админке. Там часто ведутся логи.

#Создаем черный список IP адресов allow from all deny from 145.186.14.122 deny from 124.15.

Блокировка доступа к определённому файлу

Если вы не хотите, чтобы кто-то могут увидеть содержание файлов на хостинге, то доступ к ним можно заблокировать. Без блокировки, любой пользователь при желании сможет узнать, что, например, у вас прописано в .htaccess или robots.txt.

#Защищаем .htaccess файл <files .htaccess=""> order allow,deny deny from all </files>

Установка пароля на доступ к файлам

Также файлы можно не блокировать полностью, а создать доступ по паролю. Чтобы установить пароль нужно создать файл .htpasswd. Там в формате user:password он и должен хранится. Но пароль нужно зашифровать, чтобы никто не получил к нему доступ. В интернете есть несколько сервисов для автоматической шифровки.

#защита паролем файла <files secure.php=""> AuthType Basic AuthName «Prompt» AuthUserFile /pub/home/.htpasswd Require valid-user </files> #защита паролем папки resides AuthType basic AuthName «This directory is protected» AuthUserFile /pub/home/.htpasswd AuthGroupFile /dev/null Require valid-user

Перенос сайта на новый домен

301 редирект сделан для переадресации с одной страницы на другую, но вот если придётся перенести сайт на новый домен, то тут лучше воспользоваться нижеприведённой командой.

#Перенаправляем со старого домена old.com — на новый RewriteEngine On RewriteRule ^(.*)$ https://www.new.com/$1 [R=301,L]

Кэширование

Скорость загрузки страниц давно является ещё одним фактором ранжирования. К тому же, если сайт долго загружается, пользователь может просто закрыть страницу, так ничего и не дождавшись. Включённое кэширование позволит ускорить загрузку в десятки раз, если пользователь заходит на сайт ранее. После посещения сайта, некоторые его элементы сохраняются на компьютер, из-за чего, при повторном заходе, загрузка будет производиться уже с памяти жесткого диска, а не с интернета.

#Усиливаем кеширование FileETag MTime Size <ifmodule mod_expires.c> <filesmatch ".(jpg|gif|png|css|js)$"> ExpiresActive on ExpiresDefault «access plus 1 year» </filesmatch> </ifmodule>

Включение сжатия

Включённое сжатие также позволит ускорить загрузку. Сначала сервер попытается сжать все данные, и только после этого отправит их пользователю. Для улучшения результата можно включить компрессию (строка addOutputFilterByType), но тогда процессор сервера будет сильно нагружен. Так что при обычном тарифе на хостинге эту строчку лучше удалить.

#Сжимаем компоненты сайта путем включения Gzip AddOutputFilterByType DEFLATE text/html text/plain .. .. text/xml application/xml application/xhtml+xml .. .. text/javascript text/css application/x-javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch bMSIE !no-gzip !gzip-only-text/html

Запрет на доступ к папкам

Если нет желания, чтобы кто-то “гулял” по директориям сайта, то достаточно вставить специальную запрещающую команду.

#Запрещаем просмотр содержимого папки Options All —Indexes

Блокировка комментирование записей без Referrer

Referrer определяет откуда именно был произведён переход на ресурс. Часто спам-боты делают прямые переходы на сайт, и соответственно, Referrer у них отсутствует. Для таких пользователей возможность комментирования лучше отключить, чтобы избежать спама.

#Запрещаем комментарии от пользователей без Referrer RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .comment\/reply\/* RewriteCond %{HTTP_REFERER} !.*yourblog.com.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^https://%{REMOTE_ADDR}/$ [R=301,L]

Дополнительная защита

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

#Включаем отслеживание сим-ссылок 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]

Перенаправление пользователя с помощью директивы RedirectMatch

Этот директив позволит сообщать браузеру о том, что появилась необходимость перенаправления на другую страницу.

RedirectMatch [status] regexp URL

Здесь имееются несколько статусов:

  1. 301 – постоянный редирект (permanent).
  2. 302 – временный. (temp).
  3. 303 – на наиболее популярную или полезную страницу (seeother).
  4. 410 – редиректа нет, так как она удалён (gone).

Защита от прямых ссылок

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

# Запретить другим сайтам использовать прямые ссылки на ваши картинки 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]

Защита от хотлинка с ImageCache

Но если использовать ImageCache, то вышеприведённый вариант работать не будет. Для того, чтобы это исправить, достаточно добавить ещё один код.

SetEnvIfNoCase Referer «^$» local_ref=1 # Allowed domains # Далее разрешенные домены SetEnvIfNoCase Referer «^https://(www\.)?domain\.ru» local_ref=1 SetEnvIfNoCase Referer «^https://(www\.)?domain\.com» local_ref=1 # File extensions that you want to protect # Расширения файлов, которые нужно защитить <FilesMatch "\.(bmp|jpe?g|gif|png)"> Order Allow,Deny Allow from env=local_ref </FilesMatch>

Запрещаем доступ в админ-панель с других ip адресов

Создайте файл .htaccess в папке admin и запишите в него этот код где xxx.xxx.xxx.xxx это ваш ip адрес. Если у вас динамический ip указываем только ххх.ххх.

<Files "index.php"> order deny,allow Deny from all Allow from xxx.xxx.xxx.xxx </files>

Заключение

Естественно, существует и десятки других правил для .htaccess, но здесь были приведены самые важные, которые чаще других используются при работе с сайтом.

 

скачать dle 12.0

Нашли ошибку? Выделите текст и нажмите CTRL+ENTER

opencart-help.ru

как правильно отредактировать Файл .htaccess для локального сервера?

как правильно отредактировать Файл .htaccess для локального сервера mamp?

Примечание: Пишет The requested URL /mebelpinsk/detskaja-mebel was not found on this server. А ссылка в браузере имеет нормальный вид http://localhost/mebelpinsk/detskaja-mebel Я думаю может это все дело .htaccess

Примечание: Вот что в файле .htaccess # 1.To use URL Alias you need to be running apache with mod_rewrite enabled. # 2. In your opencart directory rename htaccess.txt to .htaccess. # For any support issues please visit: http://www.opencart.com Options +FollowSymlinks # Prevent Directoy listing Options -Indexes # Prevent Direct Access to files <FilesMatch "\.(tpl|ini|log)"> Order deny,allow Deny from all </FilesMatch> # SEO URL Settings RewriteEngine On # If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/ RewriteBase / RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L] RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] ### Additional Settings that may need to be enabled for some servers ### Uncomment the commands by removing the # sign in front of it. ### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that. # 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it: # php_flag register_globals off # 2. If your cart has magic quotes enabled, This may work to disable it: # php_flag magic_quotes_gpc Off # 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try # php_value upload_max_filesize 999M # 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields # php_value post_max_size 999M # 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields # php_value max_execution_time 200 # 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields # php_value max_input_time 200 # 7. disable open_basedir limitations # php_admin_value open_basedir none

ballbezz а где в каком месте последовательности нужно прописать allowoverride

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.

www.rpi.su

Правильный htaccess opencart

Правильный htaccess opencart или оптимальный htaccess.

В интернете найдете кучу примеров, все зависит от хостинга, для нас это был оптимальный вариант

#dnwr_host cdn1.opencart.im cdn2.opencart.im

 

# Prevent Directoy listing

Options All -Indexes

 

# Prevent Direct Access to files

<FilesMatch "\.(tpl|ini|log)">

    Order deny,allow

    Deny from all

</FilesMatch>

# http://www.feofan.net

# SEO URL Settings

# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/

RewriteEngine On

RewriteBase /

RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]

RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)

RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

 

# Add "gzip Encoding" to already gzipped files

AddType text/css .css .cssgz

AddType text/javascript .js .jsgz

AddEncoding x-gzip .cssgz .jsgz

 

# Enable Gzip into use mod_gzip.c

<IfModule mod_gzip.c>

    mod_gzip_on         Yes

    mod_gzip_dechunk    Yes

    mod_gzip_item_include file      \.(html?|txt|css|js|php|pl)$

    mod_gzip_item_include mime      ^text\.*

    mod_gzip_item_include mime      ^application/x-javascript.*

    mod_gzip_item_include mime      ^application/x-font-woff.*

    mod_gzip_item_exclude mime      ^image\.*

    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

</IfModule>

 

<IfModule mod_deflate.c>

    AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript

</IfModule>

 

cs50.com.ua


Prostoy-Site | Все права защищены © 2018 | Карта сайта