Jump to content

[Solved] prestashop + nginx


Recommended Posts

возвращаю оригинальный пост

поможет тем кто держит престашоп на связке nginx apache fastcgi или в комбинациях

http://wiki.nginx.org/Prestashop_Rewrites

по ссылке добрый человек разместил переписанные под энжинкс правила для ЧПУ, фиксирую текст

rewrite ^/([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2$3.jpg last;
rewrite ^/([0-9]+)\-([0-9]+)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2.jpg last;
rewrite ^/([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/c/$1$2.jpg last;
rewrite "^/lang-([a-z]{2})/([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$3&isolang;=$1$5" last;
rewrite "^/lang-([a-z]{2})/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$2&isolang;=$1$4" last;
rewrite "^/lang-([a-z]{2})/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /category.php?id_category=$2&isolang;=$1" last;
rewrite ^/([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$2$4 last;
rewrite ^/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$1$3 last;
rewrite ^/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /category.php?id_category=$1 last;
rewrite ^/content/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /cms.php?id_cms=$1 last;
rewrite ^/([0-9]+)__([a-zA-Z0-9-]*)(.*)$ /supplier.php?id_supplier=$1$3 last;
rewrite ^/([0-9]+)_([a-zA-Z0-9-]*)(.*)$ /manufacturer.php?id_manufacturer=$1$3 last;
rewrite "^/lang-([a-z]{2})/(.*)$ /$2?isolang=$1" last



у кого апач стоит бекендом а энжинк отдает только картинки, и в момент включения ЧПУ у вас вместо картинок заглушки с неправильным урлом, берем строки

rewrite ^/([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2$3.jpg last;
rewrite ^/([0-9]+)\-([0-9]+)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2.jpg last;
rewrite ^/([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/c/$1$2.jpg last;



и прописываем их в location раздел конфы домена, ну или в общий в зависимости от ваших настроек

П.С. весь набор реврайтов не проверял, смотрите внимательно. Также себе на память, нагуглено:

Переделка RewriteRule простая
1) надо в нгинксовой версии добавить слеши в начале
2) RewriteRule заменить на rewrite
3) [L] заменить на last;

Пример апача:
RewriteRule ^(en|de)/album/(.+?)/(.+?)/(.*)$ album.php?c=$1&id;=$2&name;=$3&$4 [L]

нгинкс
rewrite ^ /(en|de)/album/(.+?)/(.+?)/(.*)$ /album.php?c=$1&id;=$2&name;=$3&$4 last;
Link to comment
Share on other sites

  • 5 weeks later...

п..з..ц
тему запорол
у меня prestashop стоит на сервере с nginx
по началу грешил на него, и ЧПУ и скорость, и все беды на него :)
оказалось - руки кривые у меня были...
когда допёр до всего, nginx оказалось не причём

Link to comment
Share on other sites

п..з..ц
оказалось - руки кривые у меня были...
когда допёр до всего, nginx оказалось не причём

У меня была проблема с Nginx, так и не решил - воспользовался услугами хостинга.
В чем у Вас проблема была? Как решили?
Link to comment
Share on other sites

вернул оригинальный пост, если кому-то поможет - пользуйтесь.
вообще в идеале при наличии таких правил... а -студент- apache не нужен родной (с) кин-дза-дза)))

ставим nginx + php и забываем про тяжелый апач

Link to comment
Share on other sites

а en/de менять на ру?


в нижнем примере это без привязки к престашопу, просто логика замены правил.
выше даны правила для престашопа, но я использую nginx только для отдачи картинок, потому использую только выделенные 3 правила
Link to comment
Share on other sites

скажи я вот теряюсь пока немного в этом _a-zA-Z0-9- , если я правильно понял - любой текст и цифры начинающиеся с _ и закнчивающиеся - правильно ?

Link to comment
Share on other sites

скажи я вот теряюсь пока немного в этом _a-zA-Z0-9- , если я правильно понял - любой текст и цифры начинающиеся с _ и закнчивающиеся - правильно ?


угу. только если ты собираешься переделывать правила сам - то как минимум используемые регулярки стоит изучить, я не вникал в них
Link to comment
Share on other sites

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

http://tovar.domen.com или http://kategoriya.domen.com
а с кирилическими урл вообще беда, вроде бы регулярки дописал всё правильно а не хочет по русски ссылки показывать и хоть ты тресни

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...