Nginx vers apache erreur
5 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- huulu
- Nouveau WRInaute

- Messages: 4
- Inscription: 13 Sep 2010
Nginx vers apache erreur
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
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
-

IllusionPerdu - WRInaute discret

- Messages: 141
- Inscription: 11 Mar 2006
Re: Nginx vers apache erreur
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...
- huulu
- Nouveau WRInaute

- Messages: 4
- Inscription: 13 Sep 2010
Re: Nginx vers apache erreur
Parce que je n'ai pas le choix
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!
Merci!
- huulu
- Nouveau WRInaute

- Messages: 4
- Inscription: 13 Sep 2010
Re: Nginx vers apache erreur
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 !
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 !
- huulu
- Nouveau WRInaute

- Messages: 4
- Inscription: 13 Sep 2010
Re: Nginx vers apache erreur
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 ^^
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 ^^
5 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Erreur /none Apache
- [Apache] Erreur /redirect:/
- Erreur Apache erealloc()
- Erreur apache : server reached MaxClients setting
- Lien non fonctionnel : erreur php ? apache ? autre ?
- Erreur log Apache avec URL rewritées et GoogleBot
- erreur Apache : "Request failed: error reading the head
- jai activé tous les modules Apache par erreur....
- Hotlink et nginx
- Serveur web Nginx
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités
