Правильный htaccess — Opencart 3
- Информация о материале
- S2M
- Blog-ru
.htaccess – это конфигурационный файл веб-сервера Apache
.htaccess – это конфигурационный файл веб-сервера Apache, позволяющий управлять работой веб-сервера и настройками сайта с помощью различных параметров (директив) без изменения основного конфигурационного файла веб-сервера.
Этот код я использую на своем сервере
Web сервер: Apache + php-fpm
Версія PHP 5.6
- Сделан корректный редирект на https (если у вас не установлено безопасное подключение, замените ссылку на https)
- Отсутствуют дубли страниц www и без www
- Редирект прописных букв на строчные
- При использовании кода замените ***.com на свой сайт
Не забудьте – для редактирования не используйте стандартный блокнот! Я, например, использую Notepad++
AddDefaultCharset UTF-8
# 1. ?]*) index.php?_route_=$1 [L,QSA]
php_value display_errors 1
php_value display_startup_errors 1
php_value error_reporting E_ALL
- Просмотров: 59
- Назад
- Вперед
Настройка htaccess
Файл .htaccess на сайте нужен для того, чтобы напрямую отдавать серверу определённые команды или устанавливать какие-либо параметры. Например, через .htaccess на блогах часто включают кэширование страниц, устанавливают редирект, блокируют различные запросы и т. д. Но каждая дополнительная функция увеличивает нагрузку на сервер, поэтому обращаться к этому способу управления следует лишь в том случае, когда нет других вариантов. Обычно всегда можно реализовать желаемую функцию с помощью плагина или редактирования кода.
Давайте разберём 17 основных правил, который должен знать любой веб-мастер, желающий работать с файлом .htaccess. 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, то от поисковых систем санкций не последует.
- 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 [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, но здесь были приведены самые важные, которые чаще других используются при работе с сайтом.
ssl — Как переместить сайт opencart с http на https
спросил
Изменено 3 года, 10 месяцев назад
Просмотрено 3к раз
Я уже установил ssl-сертификат на свой сайт opencart, но некоторые страницы нормально работают с https, но страницы категорий не работают с https. Нужно ли мне также менять все URL-адреса в базе данных? В файле конфигурации я уже установил https.
- ssl
- https
- opencart
Некоторые из них могут не относиться к вашей конкретной установке, но в интересах создания исчерпывающего ответа я попытался охватить все базы здесь:
Примечание: вам может потребоваться настроить имена таблиц в зависимости от префикса таблицы вашего магазина, если они не начинаются с 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
:
Так и должно быть!
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя адрес электронной почты и парольОпубликовать как гость
Электронная почтаТребуется, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
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».
Выяснилось, что единственный способ принудительно использовать SSL на всех страницах И решить проблему с «www» — отредактировать файл . htaccess.
Я попытался добавить это, чтобы принудительно использовать SSL на всех страницах, но безрезультатно: 9(.*)$ https://uneltescu.ro/$1 [R,L]
Просмотрел Интернет и SO и нашел несколько вариантов принудительной работы SSL и версии «www», но ни один из них, похоже, не работал у меня, возможно, я не понял, для чего они были предназначены. правильно.
Вот как выглядит мой файл .htaccess по умолчанию:
# 1. Чтобы использовать псевдоним URL, вам нужно запустить apache с включенным mod_rewrite. # 2. В вашем каталоге opencart переименуйте htaccess.txt в .htaccess. # По любым вопросам поддержки, пожалуйста, посетите: http://www.opencart.com Опции +FollowSymlinks # Предотвратить листинг Directoy Параметры - Индексы # Запретить прямой доступ к файламТребовать все отказано ## Для apache 2.2 и старше замените «Require all disabled» на эти две строки: # Отказать в заказе, разрешить # Запретить от всех # Настройки URL-адреса SEO RewriteEngine включен # Если ваша установка opencart не запускается в основной веб-папке, убедитесь, что папка запускается, т. ?]*) 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.