Affichage des résultats 1 à 3 sur 3

Discussion: PB avec configuration de Nginx + rewrite + prestashop

  1. #1
    Membre
    Date d'inscription
    April 2012
    Messages
    5

    Angry PB avec configuration de Nginx + rewrite + prestashop

    Hello le forum

    Je config actuellement un serveur basé sur :
    debian 6
    apache 2
    nginx
    et Prestashop utilisant le REWRITE.
    Les options de rewrite ont bien été activées.

    Mon problème actuellement est le suivant (je vous expose 4 cas):

    Cas 1/ Lorsque Nginx n'est pas installé, tout fonctionne bien, avec ou sans l'option Rewite.

    Cas 2/ Lorsque j'installe et configure Nginx, sans la réécriture des liens avec Pretashop : tout fonctionne, tout s'affiche.

    Cas 3/ Lorsque je laisse activer le Rewriting, via le BO de Prestashop, mais avec aucune règle dans le fichier de config de Nginx, toutes les pages s'affichent, avec la bonne réécriture de l'URL (accueil, produit, etc.) mais aucune photo ne s'affiche...

    Cas 4/ Dès que j'active tout : Nginx + les règles de Rewrite (que j'intègre dans le fichier de config de Nginx), seule la page d'accueil fonctionne, avec les images de la page d'accueil qui s'affichent bien aussi.
    Mais les autres pages donnent une erreur "La page n'est pas redirigée correctement".
    L'URL de chaque page a bien été réécrite de la bonne manière, mais la page recherchée a un statut "301 Moved". Le serveur tente de lancer 21 fois, et 21 fois la page remonte (avec le "GET") ce statut "301 moved".


    Je vous joins ici mes deux fichiers config :

    fichier /etc/nginx/sites-available/default
    Code:
    server {
    
    rewrite ^/([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$1$2.jpg last;
    rewrite ^/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$1$2$3.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$1$2$3$4.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.jpg last;
    rewrite ^/c/([0-9]+)(-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*.jpg$ /img/c/$1$2.jpg last;
    rewrite ^/c/([a-zA-Z-]+)/[a-zA-Z0-9-]+.jpg$ /img/c/$1.jpg last;
    rewrite ^/([0-9]+)(-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*.jpg$ /img/c/$1$2.jpg last;
    rewrite ^/([0-9]+)-[a-zA-Z0-9-]*.html /product.php?id_product=$1 last;
    rewrite ^/[a-zA-Z0-9-]*/([0-9]+)-[a-zA-Z0-9-]*.html /product.php?id_product=$1 last;
    rewrite ^/([0-9]+)-[a-zA-Z0-9-]*(/[a-zA-Z0-9-]*)+ /category.php?id_category=$1&noredirect=1 last;
    rewrite ^/([0-9]+)-[a-zA-Z0-9-]* /category.php?id_category=$1 last;
    rewrite ^/([0-9]+)__([a-zA-Z0-9-]*) /supplier.php?id_supplier=$1 last;
    rewrite ^/([0-9]+)_([a-zA-Z0-9-]*) /manufacturer.php?id_manufacturer=$1 last;
    rewrite ^/content/([0-9]+)-([a-zA-Z0-9-]*) /cms.php?id_cms=$1 last;
    rewrite ^/content/category/([0-9]+)-([a-zA-Z0-9-]*) /cms.php?id_cms_category=$1 last;
    rewrite ^/erreur-404$ /404.php last;
    rewrite ^/panier$ /cart.php last;
    rewrite ^/contactez-nous$ /contact-form.php last;
    
    
    
    
            listen   80; ## listen for ipv4
            listen   [::]:80 default ipv6only=on; ## listen for ipv6
            #server_name  localhost;
            server_name www.monsite.fr;
            access_log  /var/log/nginx/monsite.access.log;
    
            location ~* \.(jpg|jpeg|gif|css|png|js|ico|swf|mp3)$ {
                    root   /var/www/monsite;
                    expires        365d;
                    access_log     off;
            }
    
    
            location / {
                    proxy_pass http://127.0.0.1:8080;
                    proxy_set_header Host $host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    access_log off;
            }
    
            location /doc {
                    root   /usr/share;
                    autoindex on;
                    allow 127.0.0.1;
                    deny all;
            }
    
            location /images {
                    root   /usr/share;
                    autoindex on;
            }

    fichier /etc/apache2/sites-enabled/000-default
    Code:
    /etc/nginx/sites-available# more /etc/apache2/sites-enabled/000-default
    <VirtualHost *:8080>
            ServerAdmin webmaster@localhost
    
            DocumentRoot /var/www/monsite
            <Directory />
                    Options FollowSymLinks
                    AllowOverride All
            </Directory>
            <Directory /var/www/monsite>
                    Options Indexes FollowSymLinks MultiViews
                    AllowOverride All
                    Order allow,deny
                    allow from all
            </Directory>
    
            ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
            <Directory "/usr/lib/cgi-bin">
                    AllowOverride All
                    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                    Order allow,deny
                    Allow from all
            </Directory>
    
            ErrorLog ${APACHE_LOG_DIR}/error.log
    
            # Possible values include: debug, info, notice, warn, error, crit,
            # alert, emerg.
            LogLevel warn
    
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    
    </VirtualHost>
    Enfin les logs sous /var/logs ne donnent rien d'explicite... Ne donnent rien tout court même
    La log apache2 :

    127.0.0.1 - - [22/Apr/2012:18:31:03 +0200] "GET /product.php?id_product=1204 HTTP/1.0" 301 462 "http://www.monsite.fr/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0"


    Voilà voilà, ça fait plus d'une semaine que je me prends la tête avec.
    Peut-être que quelqu'un trouvera une solution, sait-on jamais !!!
    Dernière modification par excellent974 ; 22/04/2012 à 18h32.

  2. #2
    Membre
    Date d'inscription
    February 2011
    Messages
    252

    Re : PB avec configuration de Nginx + rewrite + prestashop

    Vire toutes les règles de rewrite d'Nginx et laisse Apache gérer la réécriture d'URL (ou passe en Full NginX + cgi). Dans tous les cas ne met pas deux fois les règles de réécriture !

    Remplace le "AllowOverride All" par "AllowOverride None" pour le répertoire / (par sécurité)

    Active la réécriture d'url pour Apache "a2enmod rewrite"

    Restart Apache & NginX

  3. #3
    Membre
    Date d'inscription
    April 2012
    Messages
    5

    Re : PB avec configuration de Nginx + rewrite + prestashop

    déjà fait
    mais marche pas

    ps : avec ou sans fichier htaccess
    ps 2 :

    Finalement, ça l'air de fonctionner avec la configuration suivante :
    Il a fallu que je mette les règles d'écriture pour les fichiers statiques dans la conf de Nginx, et laissez les règles d'écriture pour le reste sur le .htaccess

    fichier de config nginx :

    server {

    rewrite ^/([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$1$2.jpg last;
    rewrite ^/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$1$2$3.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$1$2$3$4.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.jpg last;
    rewrite ^/c/([0-9]+)(-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*.jpg$ /img/c/$1$2.jpg last;
    rewrite ^/c/([a-zA-Z-]+)/[a-zA-Z0-9-]+.jpg$ /img/c/$1.jpg last;
    rewrite ^/([0-9]+)(-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*.jpg$ /img/c/$1$2.jpg last;

    listen 80 default;
    server_name _;
    server_name_in_redirect off;
    resolver 127.0.0.1;
    #### www. redirect - all domains starting with www will be redirected to http://domain. ####
    if ($host ~* ^(www\.)(.+)) {
    set $rawdomain $2;
    rewrite ^/(.*)$ http://$rawdomain/$1 permanent;
    }
    access_log /var/log/ispconfig/httpd/$host/access.log;
    location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|d oc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js |swf|flv|mp3)$ {
    root /var/www/$host/web;
    access_log off;
    expires 30d;
    }
    location / {
    root /var/www/$host/web;
    index index.html index.htm index.php;
    access_log off;
    proxy_pass http://127.0.0.1:82/;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }

    Fichier .htaccess incluant les autres règles de réécriture
    Dernière modification par excellent974 ; 27/04/2012 à 02h17.

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •