[NGinX] Configurer l'URL Rewriting
Salut,
comme j'ai pas envie d'avoir des URLs laides, je veux passer par l'URL Rewriting, après recherche j'en suis arrivé à prendre la configuration d'un autre topic, j'ai donc dans mon nginx.conf:
(C'est aussi tiré de la doc, partiellement)
Je préfère le dire, j'ai toujours trouvé les regexp "magique", même en essayant de les comprendre c'est pas mon truc.
Mais à priori c'est bon, seulement, quand je vérifie mes URL il y a des soucis:
Je passe pour ma page de contact du lien: http://192.168.1.42/index.php?static1/contact à http://192.168.1.42/static1/contact, et je n'arrive pas à trouver d'où vien "static1", à la rigueur j'aimerai qu'il saute complètement!
Quand aux articles, http://192.168.1.42/article1/test
Le nom de l'article est test, pourquoi est-il rangé dans la section "article1" (que je n'arrive pas non plus à trouver dans la configuration). Un simple /article/test suffirait largement.
Pourriez-vous m'aider? À priori l'URL Rewriting fonctionne et je me demande si ça ne viendrait pas simplement de la manière dont j'ai configuré PluXml et non pas de celle d'NGinX.
Une piste?
Koshicalement
comme j'ai pas envie d'avoir des URLs laides, je veux passer par l'URL Rewriting, après recherche j'en suis arrivé à prendre la configuration d'un autre topic, j'ai donc dans mon nginx.conf:
# URL Rewriting
#
#
# On cache le fichier version:
location /version {
return 404;
}
# Ligne très importante pour éviter le vol de mot de passe
location /data/configuration/users.xml {
return 403;
}
if (!-e $request_filename) {
rewrite ^/(?!feed)(.*)$ /index.php?$1 last;
}
rewrite ^/feed\/(.*)$ /feed.php?$1 last;
(C'est aussi tiré de la doc, partiellement)
Je préfère le dire, j'ai toujours trouvé les regexp "magique", même en essayant de les comprendre c'est pas mon truc.
Mais à priori c'est bon, seulement, quand je vérifie mes URL il y a des soucis:
Je passe pour ma page de contact du lien: http://192.168.1.42/index.php?static1/contact à http://192.168.1.42/static1/contact, et je n'arrive pas à trouver d'où vien "static1", à la rigueur j'aimerai qu'il saute complètement!
Quand aux articles, http://192.168.1.42/article1/test
Le nom de l'article est test, pourquoi est-il rangé dans la section "article1" (que je n'arrive pas non plus à trouver dans la configuration). Un simple /article/test suffirait largement.
Pourriez-vous m'aider? À priori l'URL Rewriting fonctionne et je me demande si ça ne viendrait pas simplement de la manière dont j'ai configuré PluXml et non pas de celle d'NGinX.
Une piste?
Koshicalement
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
(retour de week end)
Ta page de contact tu l'as fait à partir de quoi : d'un plugin ou d'un script copier-coller dans une page statique ?
Pour ton http://192.168.1.42/article1/test c'est le fonctionnement de PluXml
article: type de lien pour dire que c'est dans article
1: c'est l'identifiant de l'article sans les zéros significatifs (0001)
test: c'est le lien (url) de l'article, qui par défaut est construit à partir du titre de l'article
Sans le type de lien et l'identifiant PluXml ne saura pas retrouver l'article à afficher car il ne se base pas sur le lien mais l'id, car imaginons 2 articles avec le meme lien. PluXml serait perdu.
Tu peux utiliser le plugin MyBetterUrls qui lui n'utilise pas l'id mais se base sur le lien (avec la restriction qui suppose qu'il n'y ait pas plusieurs articles avec le meme titre)
Après désolé mais je ne pourrait pas beaucoup t'aider avec nginx parce que je ne connais pas son fonctionnement.
Consultant PluXml
Ancien responsable du projet (2010 à 2018)
On a bien tous le droit à ses week-end .
La page de contact est une page statique.
Okay je comprend que PluXml marche ainsi, mais n'y a t'il pas moyen avec un rewrite de passer "outre" sans que PluXml soit perdu?
Je vais jeter un coup d'oeil à MyBetterUrls, je ferai donc attention à ne pas multiplier les titres.
Pas grave pour NGinX, je chercherai et trouverai probablement.
Koshicalement
Les structures d'URL que tu as constaté sont indépendantes du serveur web. Tu aurai le même résultat avec Apache ou IIS. Il n'y a rien de propre à nginx ici.
Comme le dit Stéphane, seul le plugin MyBetterUrls peut cacher la structure de base des URL. Le plugin va répondre à ton besoin.
Matthieu