Nginx vers apache erreur

Discussion dans 'URL Rewriting et .htaccess' créé par huulu, 13 Septembre 2010.

  1. huulu
    huulu Nouveau WRInaute
    Inscrit:
    13 Septembre 2010
    Messages:
    4
    J'aime reçus:
    0
    Bonjour ou bonsoir à tous et à toutes,

    Je suis entrain de migrer certains sites web sur un autre serveur disposant d'apache, je doit ajouter deux règles spécifiques pour le bon fonctionnement d'un site web mais je n'arrive pas à les faire fonctionner convenablement après plusieurs essais et lecture.

    Voici les règles originales de la configuration nginx:

    rewrite ^/(?!src)([^\-]*)(?:/(.+))?(?:\.x?html?|\.php|\.asp|\.aspx)$ /index.php?mod=$1&query=$2 last;
    rewrite ^/(?!src)([^\-]*)$ /index.php?mod=$1 last;

    Le but de la première règle est de rediriger les url de type "/articles/site-1.html", "/articles/site-1/page-2/varx-y.html" Les mots "articles, site, page et var" sont à titre indicatifs, car en réalité le nom des variables n'importe pas puisque la règle doit capter tout peu importe les mot. Critères: ne débute pas par le mot "src" (qui est en fait un dossier réel pour les documents statiques), tout ce qui ne contient ps le caractère "-" (utiliser pour séparer les variables des valeurs) = Variable $1 pour "mod=$1", ensuite, tout les caractères avec fin de séquence ce terminant par une extension quelconque = Variable $2 pour "query=$2"

    Le but de la deuxième règle est de capter les url de type "/articles", "/articles/". Bref, l'url qui ne contient pas de variables "ré-écrites". Encore là, elle ne doit pas capter ce qui débute par "src" dossier de documents statiques.

    J'ai donc essayé quelque chose comme ceci pour commencer :

    RewriteRule ^/(?!src)([^\-]*)(?:/(.+))?(?:\.x?html?|\.php|\.asp|\.aspx)$ /index.php?mod=$1&query=$2 [L]
    RewriteRule ^/(?!src)([^\-]*)$ /index.php?mod=$1 [L]

    Rien ne ce passe, le / du début des règles fait en sorte que rien n'est capté.

    RewriteRule ^(?!src)([^\-]*)(?:/(.+))?(?:\.x?html?|\.php|\.asp|\.aspx)$ /index.php?mod=$1&query=$2 [L]
    RewriteRule ^(?!src)([^\-]*)$ /index.php?mod=$1 [L]

    Internal error, le / de la deuxième partie semble être en cause.

    RewriteRule ^(?!src)([^\-]*)(?:/(.+))?(?:\.x?html?|\.php|\.asp|\.aspx)$ index.php?mod=$1&query=$2 [L]
    RewriteRule ^(?!src)([^\-]*)$ index.php?mod=$1 [L]

    Semblait prometteur, mais si je met un index.php qui "print" les variables en GET, la variable "mod" égale toujours "index" ou "index.php" alors que je tape : monsite.tld/articles ou monsite.tld/articles/var-1.html

    Résultat désiré avec "monsite.tld/articles/var-1.html" : mod=articles&query=var-1
    Résultat désiré avec "monsite.tld/articles" : mod=articles

    J'ai fait pas mal d'autres tests, mais je vous ai transmis les plus probants.

    Pourriez-vous m'aider S.V.P ?

    Merci :)
     
  2. IllusionPerdu
    IllusionPerdu WRInaute discret
    Inscrit:
    11 Mars 2006
    Messages:
    130
    J'aime reçus:
    0
    Et pourquoi vouloir migrer d'une ferrari ver une 2 cheveaux lol... Personnelement je garderais le serveur NGnix même s'il faut l'installer sur le deuxième serveur...
     
  3. huulu
    huulu Nouveau WRInaute
    Inscrit:
    13 Septembre 2010
    Messages:
    4
    J'aime reçus:
    0
    Parce que je n'ai pas le choix :roll: Le serveur de ce site c'est pas moi qui le gère, j'installe le site web d'un sous-traitant conçu pour mes serveurs (nginx) sur le serveur du client (apache) (car il a son propre serveur et ne démord pas d'apache)... Du coup j'ai besoin d'aide pour cette règle de ré-écriture ;)

    Merci!
     
  4. huulu
    huulu Nouveau WRInaute
    Inscrit:
    13 Septembre 2010
    Messages:
    4
    J'aime reçus:
    0
    J'ai la nette impression qu'il y a quelque chose qui cloche sur la configuration de ce serveur, même avec la règle suivante :

    RewriteRule (.*) index.php?mod=$1 [L]

    La requête suivante :

    monsite.com/articles

    J'obtient les variables suivantes :

    Array
    (
    [mod] => index.php
    )

    Avez-vous une idée de ce qui peux causer ça ?

    L'hébergement vient de chez iweb.com

    Merci !
     
  5. huulu
    huulu Nouveau WRInaute
    Inscrit:
    13 Septembre 2010
    Messages:
    4
    J'aime reçus:
    0
    Je n'ai pas encore trouvé...

    J'ai donc "patché" le code de mon sous-traitant via les fonctions de buffer php pour "dé-ré-écrire" ses urls... Mal fait ce code, j'aurais bien aimé devoir changer qu'une variable pour désactiver l'url rewrite ^^
     
Chargement...
Similar Threads - Nginx apache erreur Forum Date
Apache + mod-pagespeed ou Nginx compilé ? Administration d'un site Web 7 Décembre 2015
Config nginx error_page. Administration d'un site Web Hier à 11:06
Config letsencrypt pour Nginx et default.conf ? Administration d'un site Web 30 Décembre 2019
Nginx : redirections 301 plusieurs domaines. Administration d'un site Web 4 Novembre 2018
Nginx et redirection d'url avec extensions .php URL Rewriting et .htaccess 22 Octobre 2018
redirection en gardant l'url sous nginx URL Rewriting et .htaccess 11 Janvier 2018
Plan de redirections 301 / Serveur nginx Débuter en référencement 9 Janvier 2018
Comment cacher des scripts Javascript distants sous Nginx ? Développement d'un site Web ou d'une appli mobile 29 Octobre 2017
Problème d'url-rewriting sous Nginx Développement d'un site Web ou d'une appli mobile 16 Août 2016
Plesk et nginx Administration d'un site Web 23 Décembre 2015