[spip-dev] [spip-commit] r13355 - branches/spip-2.0/ecrire/urls spip/ecrire/urls

Cela ne suffit pas, en tout cas dans ma situation.

Quand je demande cette page :
http://www.gasteroprod.com/rss/tags/feedburner/176.rss

Qui est réécrite par Apache/mod_rewrite en ceci :
http://www.gasteroprod.com/spip.php?page=rss2-tag&id_mot=176

J'obtiens une page 404 et ces lignes dans spip.log :

Dec 03 16:27:48 127.0.0.1 (pid 13980) charset probable: utf-8
Dec 03 16:27:48 127.0.0.1 (pid 13980) COMPIL (0.025s) [design/404] html_d95ce25b2b56471c54875452c68f23c1.php
Dec 03 16:27:48 127.0.0.1 (pid 13980) calcul (0.013s) [design/404] page=rss2-tag, id_mot=176, date='2008-12-03 16:27:48', date_redac='2008-12-03 16:27:48' (2481 octets)
Dec 03 16:27:48 127.0.0.1 (pid 13980) Creation du cache 6/rss-tag-rss-tag-176--c4045860f49c pour 86400 secondes
Dec 03 16:27:49 127.0.0.1 (pid 13980) calcul (0.145s) [design/noisettes/page-header] titrePage='Erreur 404', lang=fr, date='2008-12-03 16:27:48', date_redac='2008-12-03 16:27:48' (4429 octets)

(Je précise à tout hasard que j'ai aussi une URL http://www.gasteroprod.com/tags/feedburner mais il ne semble de toute façon pas y avoir de confusion ici)

-Nicolas

ah voui, mais j'ai traité juste le ticket qui avait un jeu de test complet et reproductible :stuck_out_tongue:
je ne vois pas ce qui différerait dans ton cas, mais si je peux reproduire, je vais regarder.
Mais il faut se dépêcher, c'est le dernier train de commit je crois

Cédric

Mais il faut se dépêcher, c'est le dernier train de commit je crois

c'est meme pas le tgv là, peut etre un agv
;p

Author: cedric@yterium.com
Date: 2008-12-03 14:09:29 +0100 (mer, 03 déc 2008)
New Revision: 13355

Log:
#1627 : ne pas faire une erreur 404 en cas d'url arbo inconnue si on avait deja une idee d'ou arriver grace aux rewriterules

Cela ne suffit pas, en tout cas dans ma situation.

Quand je demande cette page :
http://www.gasteroprod.com/rss/tags/feedburner/176.rss

Qui est réécrite par Apache/mod_rewrite en ceci :
http://www.gasteroprod.com/spip.php?page=rss2-tag&id_mot=176

J'obtiens une page 404 et ces lignes dans spip.log :

Dec 03 16:27:48 127.0.0.1 (pid 13980) charset probable: utf-8
Dec 03 16:27:48 127.0.0.1 (pid 13980) COMPIL (0.025s) [design/404] html_d95ce25b2b56471c54875452c68f23c1.php
Dec 03 16:27:48 127.0.0.1 (pid 13980) calcul (0.013s) [design/404] page=rss2-tag, id_mot=176, date='2008-12-03 16:27:48', date_redac='2008-12-03 16:27:48' (2481 octets)
Dec 03 16:27:48 127.0.0.1 (pid 13980) Creation du cache 6/rss-tag-rss-tag-176--c4045860f49c pour 86400 secondes
Dec 03 16:27:49 127.0.0.1 (pid 13980) calcul (0.145s) [design/noisettes/page-header] titrePage='Erreur 404', lang=fr, date='2008-12-03 16:27:48', date_redac='2008-12-03 16:27:48' (4429 octets)

(Je précise à tout hasard que j'ai aussi une URL http://www.gasteroprod.com/tags/feedburner mais il ne semble de toute façon pas y avoir de confusion ici)

ah voui, mais j'ai traité juste le ticket qui avait un jeu de test complet et reproductible :stuck_out_tongue:

Je vais essayer d'être plus explicite et je vais faire un ticket alors... :wink:

je ne vois pas ce qui différerait dans ton cas

Moi non plus, c'est bien le problème.

Est-ce qu'il serait possible d'ajouter à "var_mode=debug", ou au pire dans "spip.log", les infos permettant de savoir comment un squelette a été choisi ?

Mais il faut se dépêcher, c'est le dernier train de commit je crois

OK, vu effectivement ta resynchro de trunk et 2.0.

-Nicolas

J'ai l'impression que le soucis est mis en lumière par les lignes 413 à 416 ( http://spedr.com/3s4yq ) :

// traiter les injections du type domaine.org/spip.php/cestnimportequoi/ou/encore/plus/rubrique23
if ($GLOBALS['profondeur_url']>0){
  $entite = 'type_urls';
}

En mettant ces lignes en commentaire, ça remarche chez moi.

Dans mon cas, j'ai bien une profondeur > 0 pour l'URL visible dans le navigateur, mais pas pour l'URL résultante "vue" par SPIP. Il faudrait donc distinguer les deux, ou ne pas se baser sur cette variable pour décider du type d'$entite.

-Nicolas

Cédric,

Tu préfères que je fasse un ticket pour ce petit point ?

-Nicolas

le probleme est que ces 3 lignes servent a eviter les injection d'url du type
domaine.org/spip.php/cestnimportequoi/ou/encore/plus/rubrique23
qui sont reecrites en page=rubrique&id_rubrique=23
il faut que je recreuse pour savoir si on peut discriminer, mais sinon je ne vois pas trop d'option.

Cédric

le probleme est que ces 3 lignes servent a eviter les injection d'url du type
domaine.org/spip.php/cestnimportequoi/ou/encore/plus/rubrique23
qui sont reecrites en page=rubrique&id_rubrique=23

Et quel est le danger de telles URL ? Il y a peut-être un danger, certes, mais je ne suis pas sûr que ton exemple le montre de manière évidente, en tout cas pour moi. Mais là n'est pas la question, à mon avis.

il faut que je recreuse pour savoir si on peut discriminer, mais sinon je ne vois pas trop d'option.

Le problème dans mon cas est que j'ai une règle de réécriture qui dit à SPIP que je veux ceci :
http://www.gasteroprod.com/spip.php?page=rss2-tag&id_mot=176

(je ne crois pas être le seul à avoir des URL personnalisées de la sorte)

Je n'ai même pas de "E=url_propre:$0" dans ma réécriture, l'URL propre n'ayant finalement aucune importance ensuite.

SPIP ne devrait même pas se préoccuper dans ce cas, à mon avis, de l'URL qui est dans le navigateur :
http://www.gasteroprod.com/rss/tags/feedburner/176.rss

Sauf évidemment pour le calcul de "profondeur_url" qui est certes utile pour construire les liens relatifs, mais ne devrait pas être utilisé comme une indication de l'utilisation des URL "arbo".

Donc c'est à mon avis surtout une question de choix de la bonne donnée à prendre dans les en-tête HTTP de la requête. Il faut au moins faire la distinction entre REQUEST_URI (URL demandée à Apache) et SCRIPT_NAME/QUERY_STRING (URL demandée à SPIP).

-Nicolas