[RESOLU] Règle de réécriture d'URL dans mon .htaccess

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Règle de réécriture d'URL dans mon .htaccess

Re: Règle de réécriture d'URL dans mon .htaccess

par albat » 12 sept. 2015, 16:20

J'ai trouvé !!!

J'ai un peu honte de l'avouer, mais... j'avais merdé dans le RewriteBase. :oops:

Merci pour votre aide ! ;)

Re: Règle de réécriture d'URL dans mon .htaccess

par or 1 » 12 sept. 2015, 15:18

ils passent mieux si c'est l'url index.php?p=11&n=$1 qui est appelée directement ?

Re: Règle de réécriture d'URL dans mon .htaccess

par albat » 12 sept. 2015, 15:08

Le testeur de https://regex101.com/ me dit que j'ai tout bon,
mais les paramètres ne passent pas.

Re: Règle de réécriture d'URL dans mon .htaccess

par albat » 12 sept. 2015, 13:37

Bon, j'ai opté pour cette écriture :
RewriteRule ^[a-z]*\/?edito-([0-9]+)\.htm$       /index.php?p=11&n=$1  [L]
mais les paramètres $_GET['p'] et $_GET['n'] ne sont pas transmis.

Je creuse...

Re: Règle de réécriture d'URL dans mon .htaccess

par albat » 12 sept. 2015, 12:45

Indeed !

Au fil des tâtonnements et des corrections successives,
je n'avais pas prêté attention à ces parenthèses qui restaient.
Mea culpa...

Bon, ça marche pas malgré cette correction.
Doit y avoir un autre schmurtz, Je continue de chercher.

Merci !

PS : Affreux, tes mots croisés !

Re: Règle de réécriture d'URL dans mon .htaccess

par @rthur » 12 sept. 2015, 10:15

Et pour la peine, te voila obligé de faire le niveau intermédiaire de :
hors-sujet/mots-croises-avec-regex-t273082.html

Re: Règle de réécriture d'URL dans mon .htaccess

par @rthur » 12 sept. 2015, 10:08

Effectivement, tu as merdoyé quelque part ;-)
Ta règle actuelle fait ça :
presentation/edito-1.htm <==> index.php?p=11&n=presentation/
Tu utilises des parenthèses capturantes pour récupérer des choses que tu n'utilises pas ensuite.
2 possibilités :
- soit tu dégages les parenthèses inutiles
- soit tu les transformes en parenthèses non-capturantes, c'est à dire en ajoutant "?:" après la parenthèse ouvrante, ce qui donne (?:

Voici un site bien pratique pour tester ses règles htaccess :
http://htaccess.madewithlove.be

Règle de réécriture d'URL dans mon .htaccess

par albat » 12 sept. 2015, 03:14

Bonjour,

Ça faisait un moment que je n'avais pas codé et, si HTML, CSS, PHP,... reviennent vite,
les REGEX pour les redirections Apache, en revanche, c'est pas comme le vélo : ça s'oublie. :cry:

Je souhaite réécrire mes URL sous cette forme :

presentation/edito-1.htm <==> index.php?p=11&n=1

Précisions :
- 'presentation' est un dossier virtuel, présent dans l'URL réécrite mais qui n'existe pas physiquement.
- le nombre final de l'URL réécrite est le paramètre 'n'

J'ai composé la rgèle de réécriture suivante :
RewriteRule ^(\S*)(\/?)edito-([0-9]+)\.htm$       /index.php?p=11&n=$1  [L]
Mais ça marche pas.
Aurais-je merdoyé quelque part ?

Merci !