Настройка Nginx для OpenCart 3

Apache как вэб сервер очень «тяжелый» и использовать его только ради mod_rewrite больно дорогое удовольствие для производительности, по этому я настраиваю сайты на связку nginx + php-fpm, общие настройки в сети и так доступны, а я лишь приведу пример конфига для nginx для корректной работы opencart cms третьей ветки

server {
    listen 80;
    listen [::]:80;
    server_name  example.com www.example.com;
	
	index index.php index.html;
	
	root /home/webuser/www/example.com/public_html;
	
	access_log /var/log/nginx/example.com-access.log;
	error_log /var/log/nginx/example.com-error.log;
	
	location ~* \/\.ht {
		deny all;
	}	
	
	location ~* (\.tpl|.twig|\.ini|\.log|(?<!robots)\.txt) {
		deny all;
	}
	
	location ~* \/\.git {
		deny all;
	}
	
	location ~* \/image.+(\.php) {
		deny all;
	}
	
	location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
		expires max;
		log_not_found off;
	}
	
	location = /sitemap.xml {
		rewrite ^(.*)$ /index.php?route=extension/feed/google_sitemap last;
	}

	location = /googlebase.xml {
	    rewrite ^(.*)$ /index.php?route=extension/feed/google_base last;
	}

	location /system {
	    rewrite ^/system/storage/(.*) /index.php?route=error/not_found last;
	}
	
	location = /favicon.ico {
		log_not_found off;
		access_log off;
	}

	location = /robots.txt {
		allow all;
		log_not_found off;
		access_log off;
	}
	
	location /admin { index index.php; }

	location / {
		try_files $uri @opencart;
	}
	
	location @opencart { 
		rewrite ^/(.+)$ /index.php?_route_=$1 last; 
	}
	
	location ~ \.php$ {
		try_files $uri =404; 
		
		fastcgi_pass   unix:/run/php/php7.0-fpm.sock;
		fastcgi_buffers 16 16k;
		fastcgi_buffer_size 32k;
		fastcgi_index  index.php;
		
		include fastcgi_params;
		fastcgi_param       SCRIPT_FILENAME  $document_root$fastcgi_script_name;
	}
}

 

Настройка Nginx для OpenCart 3: 9 комментариев

  1. Чувак!) Огромное спасибо!)
    Мне подошло и помогло =)

    А то мучался с тем что ЧПУ не стартовали =(

    Вот она магия =)
    location / {
    try_files $uri @opencart;
    }

    location @opencart {
    rewrite ^/(.+)$ /index.php?_route_=$1 last;
    }

  2. Окружение laradock, не могу настроить nginix. После перегзагрузки nginix, я захожу в адимнку (все работает), тогда в каталог, я не могу попасть, выдает ошибку, что файлы не найдено все пути указывают на админку. Обратно перегружаю nginix, теперь захожу в каталог (все работает) , и аналогично с первым действием, только теперь не могу попасть в адимнку выдает ошибку что файлы не найдено все пути указывают на админку.

    1. Это что то с окружением хитрое происходит. Я могу вам собрать докер окружение для опенкарта если вам требуется для разработки с настроенными конфигами

  3. У меня не работают ссылки со включенным ЧПУ((( Version 3.0.3.2 (rs.2)
    Редиректы на главную страницу по ссылкам становятся

  4. Подскажите как можно сделать 301 редирект со страницы с двойным (3, 4 , 5 итд) слешами на один слеш
    есть
    sait.ru//
    sait.ru///
    надо перенаправлять 301 на sait.ru/
    опенкарт 2,3
    пробовал так не вышло
    rewrite ^(.*?)/+/(.*)$ $1/$2 permanent;

    rewrite ^([^/]+)/+$ $1 permanent;

    rewrite ^(.*)/{2,}(.*)$ /%1/%2 redirect;

  5. Спасибо большое, я пока ещё не проверил настройки, но уже по содержанию ясно видна полезность.

  6. Взял за основу ваш конфиг, дописал ssl и еще пару настроек и всё заработало! Огромное Вам человеческое спасибо, а то никак не мог заставить нормально ЧПУ работать.

Добавить комментарий для Алексей Отменить ответ

Ваш адрес email не будет опубликован.