Настройка htaccess
Файл .htaccess на сайте нужен для того, чтобы напрямую отдавать серверу определённые команды или устанавливать какие-либо параметры. Например, через .htaccess на блогах часто включают кэширование страниц, устанавливают редирект, блокируют различные запросы и т. д. Но каждая дополнительная функция увеличивает нагрузку на сервер, поэтому обращаться к этому способу управления следует лишь в том случае, когда нет других вариантов. Обычно всегда можно реализовать желаемую функцию с помощью плагина или редактирования кода.
Давайте разберём 17 основных правил, который должен знать любой веб-мастер, желающий работать с файлом .htaccess.
Установка запрета на загрузку файлов с других ресурсов
Некоторые пользователи могут загрузить определённый файл на ваш ресурс (изображения, видео), после чего разместив его на своём. Таким образом, все запросы к файлу будут идти через ваш сервер, нагружая его.
Если разместить в .htaccess нижеприведённый код, то, открыв страницу с файлом на вашем ресурсе, пользователи лишь увидят сообщение об ошибке.
Блокировка 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, то от поисковых систем санкций не последует.
- com – это доменное имя.
- /file.html – это страница (директория).
#Настраиваем 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/.(.*)$ 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), но тогда процессор сервера будет сильно нагружен. (.*)$ index.php [F,L]
Перенаправление пользователя с помощью директивы RedirectMatch
Этот директив позволит сообщать браузеру о том, что появилась необходимость перенаправления на другую страницу.
RedirectMatch [status] regexp URL
Здесь имееются несколько статусов:
- 301 – постоянный редирект (permanent).
- 302 – временный. (temp).
- 303 – на наиболее популярную или полезную страницу (seeother).
- 410 – редиректа нет, так как она удалён (gone).
Защита от прямых ссылок
Некоторые ресурсы пытаются экономить место на своём хостинге, и используют изображения, которые были загружены на другие ресурсы. Чтобы пользователи не использовали прямые ссылки с нашего сайта в качестве хостинга для изображений, стоит поставить защиту. После этого, открыв прямую ссылку, все другие посетители получат ошибку 403.
# Запретить другим сайтам использовать прямые ссылки на ваши картинки RewriteCond %{HTTP_REFERER} !^$ # Дальше список разрешенных доменов RewriteCond %{HTTP_REFERER} !^http(s)?://(www.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, но здесь были приведены самые важные, которые чаще других используются при работе с сайтом.
Редирект с HTTP на HTTPS — как настроить?
- Как настроить редирект с HTTP на HTTPS через панель управления ISPmanager на хостинге 2domains
- Как настроить редирект с HTTP на HTTPS через htaccess
Редирект (redirect) — автоматическое перенаправление с одной страницы на другую. Если установить 301 редирект с HTTP на HTTPS, то пользователи с адреса http://site.ru будут переадресованы на версию сайта, защищённую протоколом HTTPS: https://site.ru.
Перевести сайт на HTTPS можно двумя способами: в панели управления ISPmanager (если у вас есть хостинг 2domains) и через конфигурационный файл htaccess (Что такое htaccess?).
Редирект с HTTP на HTTPS можно настроить только в том случае, если для вашего домена установлен SSL-сертификат: Как установить SSL-сертификат.
Как настроить редирект с HTTP на HTTPS через панель управления ISPmanager на хостинге 2domains
Если у вас есть хостинг 2domains с панелью управления ISPmanager, воспользуйтесь этой инструкцией.
Перед тем как перейти к инструкции, убедитесь, что домен добавлен в панели управления: Как добавить домен в панели управления?
1. Перейдите в панель управления хостингом ISPmanager.
2. Перейдите в раздел «Сайты», дважды кликните по домену, с которого будет происходить перенаправление:
3. /page.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
Замените page.php на название вашей страницы.
apache — OpenCart 3.0.2.0 — включить SSL и исправить «www» .htaccess
Я работаю над новой установкой, которая работает на OpenCart 3.0.2.0.
Я купил SSL-сертификат, и мой хост активировал его. Затем я приступил к активации SSL от администратора OpenCart (Система-> Настройки-> Сервер-> Использовать SSL), и после редактирования файла конфигурации он работает так, как задумано OpenCart (только на страницах с формами).
Однако я хочу, чтобы сертификат был виден на всех страницах.
Кроме того, у OpenCart есть некоторые проблемы при вводе URL-адреса веб-сайта с «www» перед доменным именем, что приводит к тому, что значки с прекрасным шрифтом не загружаются. Я мог бы отредактировать файл config.php и добавить туда «www», но это испортило бы URL-адрес без «www». 9(.*)$ https://uneltescu.ro/$1 [R,L]
Просмотрел Интернет и SO и нашел несколько вариантов принудительной работы SSL и версии «www», но ни один из них, похоже, не работал у меня, возможно, я не понял, для чего они были предназначены. ?]*) index.php?_route_=$1 [L,QSA]
### Дополнительные настройки, которые могут потребоваться для некоторых серверов
### Раскомментируйте команды, удалив перед ними знак #.
### Если вы получаете «Внутреннюю ошибку сервера 500» после включения любого из следующих параметров, восстановите #, так как это означает, что ваш хост не разрешает это.
# 1. Если ваша корзина позволяет добавлять только один товар за раз, возможно, включена функция register_globals. Это может помочь отключить его:
# php_flag register_globals выключен
# 2. Если в вашей корзине включены волшебные кавычки, это может сработать, чтобы отключить их:
# php_flag magic_quotes_gpc Выкл.
# 3. Установите максимальный размер загружаемого файла. Большинство хостов ограничат это и не позволят переопределить, но вы можете попробовать
# php_value upload_max_filesize 999М
# 4. Установите максимальный размер сообщения. раскомментируйте эту строку, если у вас много вариантов продукта или вы получаете ошибки, когда формы не сохраняют все поля
# php_value post_max_size 999M
# 5.
Установите максимальное время, которое может занять скрипт. раскомментируйте эту строку, если у вас много вариантов продукта или вы получаете ошибки, когда формы не сохраняют все поля
# php_value max_execution_time 200
# 6. установить максимальное время для получения ввода. Раскомментируйте эту строку, если у вас много вариантов продукта или возникают ошибки, когда формы не сохраняют все поля.
# php_value max_input_time 200
# 7. отключить ограничения open_basedir
# php_admin_value open_basedir нет
Как должен выглядеть полный рабочий файл .htaccess для OC 3.0.2.0, чтобы принудительно использовать SSL и устранить проблему с «www»?
Было бы неплохо, если бы код не включал URL-адрес моего веб-сайта и, как правило, работал для любой установки OC 3.0.2.0, чтобы сообщество могло в дальнейшем использовать его без каких-либо дополнительных настроек.
ssl — Как переместить сайт opencart с http на https
спросил
Изменено 3 года, 2 месяца назад
Просмотрено 3к раз
Я уже установил ssl-сертификат на свой сайт opencart, но некоторые страницы нормально работают с https, но страницы категорий не работают с https. Нужно ли мне также менять все URL-адреса в базе данных? В файле конфигурации я уже установил https.
- ssl
- https
- opencart
1
Некоторые из них могут не относиться к вашей конкретной установке, но в интересах создания исчерпывающего ответа я попытался охватить все основы здесь:
Примечание: вам может потребоваться изменить имена таблиц в зависимости от вашего магазина. префикс таблицы, если они не начинаются с oc_
- Откройте
config.php
иadmin/config.php
и измените все эти постоянные объявления URL на https — обязательно включитеHTTP_SERVER
иHTTP_CATALOG
- В панели администратора перейдите в систему
> настройки
, нажмитередактировать
и в таблице сервера установитьИспользовать SSL:
доДа
. - В вашей базе данных обновите столбец
store_url
в таблицеoc_order
, чтобы все ссылки были https. Это важно, потому что обновление заказов может завершиться ошибкой, если API попытается получить доступ к http-версии вашего сайта. вы можете использовать этот запрос:ОБНОВЛЕНИЕ oc_order SET store_url = REPLACE(store_url, 'http:', 'https:')
- Если в таблицах описаний есть жестко закодированные изображения и ссылки, их также следует заменить. SSL по-прежнему будет работать, но в строке браузера будет отображаться предупреждающий флажок. Сюда входят
oc_product_description
,oc_category_description
и любые другие таблицы, в которых вы могли создать html-контент. - То же, что и выше для ваших файлов темы. Довольно часто можно найти жестко закодированные
http://
ссылки и изображения вfooter.tpl
иheader.tpl
для начинающих. Вы можете просто просмотреть свой сайт, чтобы увидеть, не отображается ли на какой-либо из страниц зеленый значок замка в браузере, и взять его оттуда. - Другим виновником нарушения https могут быть сторонние расширения, которые могут существовать как в виде файлов, так и в OC2 как ocmods в таблице
oc_modification
. - Наконец, создайте перенаправление в
.httaccess
, чтобы изящно сообщить трафику, что теперь ваши страницы можно найти на https. я исключилrobots.txt
и любые соединения для маршрутов openbay, потому что, исходя из опыта, когда я пытался перенаправить вебхуки ebay, это сломало вещи, и они, похоже,http
только по умолчанию. Я подозреваю, что это может быть недостаток в том, как openbay обрабатывает эти запросы, или, возможно, проблема с конфигурацией, но мне не удалось найти обходной путь, который не сломал бы openbay, поэтому на данный момент я бы рекомендовал оставить эти запросы нетронутыми. Я использую это в.htaccess
:
RewriteCond %{HTTPS} выкл. RewriteCond %{REQUEST_URI} !/robots\.txt$ RewriteCond %{QUERY_STRING} !^route=ebay/openbay/* RewriteRule (.