Url propre et rubrique numérique #3180

Closed
opened 8 years ago by miros · 8 comments
miros commented 8 years ago

Hello,

Lorsque l'on utilise les URL propres, et que l'on nome un objet de manière numérique (2012 par exemple), SPIP génère une URL de type domaine.tld/2012 qui est buggé.

J'ai testé avec URL propre, mais cela doit aussi se produire dans d'autre mode d'URL. L'idéal serait sans doute de ne jamais avoir des URL uniquement numériques.

Hello, Lorsque l'on utilise les URL propres, et que l'on nome un objet de manière numérique (2012 par exemple), SPIP génère une URL de type domaine.tld/2012 qui est buggé. J'ai testé avec URL propre, mais cela doit aussi se produire dans d'autre mode d'URL. L'idéal serait sans doute de ne jamais avoir des URL uniquement numériques.

ça conflicte avec l'option souvent retenue (et implémentée dans le htaccess) selon laquelle c'est le numéro d'un article qui est indiqué dans ce cas là.

ça conflicte avec l'option souvent retenue (et implémentée dans le htaccess) selon laquelle c'est le numéro d'un article qui est indiqué dans ce cas là.
b_b commented 8 years ago
Owner

Si tu veux pouvoir utiliser ce genre d'url il suffit de désactiver cette règle du htaccess :

http://core.spip.org/projects/spip/repository/entry/spip/htaccess.txt#L98

Du coup je ne suis pas certain que ça soit un "bug" car si on bloque la génération d'url uniquement numérique on risque de gêner les personnes qui souhaitent utiliser ce type d'url.

Si tu veux pouvoir utiliser ce genre d'url il suffit de désactiver cette règle du htaccess : http://core.spip.org/projects/spip/repository/entry/spip/htaccess.txt#L98 Du coup je ne suis pas certain que ça soit un "bug" car si on bloque la génération d'url uniquement numérique on risque de gêner les personnes qui souhaitent utiliser ce type d'url.

Hmmm ce n'est pas exactement cela. La ligne que tu pointes dans le htaccess se déclanche lorsqu'il y a '.api' dans l'url, mais je pensais plutôt à celles beaucoup plus banales et définies par : http://core.spip.org/projects/spip/repository/entry/spip/htaccess.txt#L88.
Par exemple sur contrib : http://contrib.spip.net/101 affiche l'article d'id_article 101, ou sur spip.net : http://spip.net/101 affiche www.spip.net/es_article101.html ou sur plugins.spip.net : plugins.spip.net/11 redirige vers http://plugins.spip.net/distribuer-une-contribution.html etc etc

Dans ces 2 cas (ligne 88 sans .api ou 98 avec .api) on a des adresses qui sont un "raccourci technique" et non une url propre.

Le problème ne se pose effectivement que si on veut utiliser l'une de ces ces urls raccourcies, et qu'on ne souhaite pas la commenter dans le htaccess.
Dans le cas de la ligne 98, avec le .api et les / dans le titre, il sera très difficile, voir impossible, aux url_propres de produire une url qui embrouillerait la regexp. Ce n'est pas un problème.

Dans le cas de la L88, par contre, la regexp est très large et les urls propres peuvent facilement la piéger si comme maintenant elles génèrent des urls propres uniquement numériques : elles génèrent alors une url que spip ne saura pas relire, comprendra mal.
Or comme ce format site.ext/num de la ligne 88 est très bref et pour cela il est couremment utilisé à la main, sur les réseaux sociaux par exemple, mais aussi comme référence dans des articles "papiers".

Il serait donc appréciable que les urls_propres, optionnellement, dans le cas où le titre est uniquement numérique, produisent une url préfixée par _, par exemple. Ainsi, l'article de titre "1989" aurait une url propre "_1989". La regexp de la L88 ne se déclancherait pas et tout pourrait cohabiter.

Hmmm ce n'est pas exactement cela. La ligne que tu pointes dans le htaccess se déclanche lorsqu'il y a '.api' dans l'url, mais je pensais plutôt à celles beaucoup plus banales et définies par : http://core.spip.org/projects/spip/repository/entry/spip/htaccess.txt#L88. Par exemple sur contrib : http://contrib.spip.net/101 affiche l'article d'id_article 101, ou sur spip.net : http://spip.net/101 affiche www.spip.net/es_article101.html ou sur plugins.spip.net : plugins.spip.net/11 redirige vers http://plugins.spip.net/distribuer-une-contribution.html etc etc Dans ces 2 cas (ligne 88 sans .api ou 98 avec .api) on a des adresses qui sont un "raccourci technique" et non une url propre. Le problème ne se pose effectivement que si on veut utiliser l'une de ces ces urls raccourcies, et qu'on ne souhaite pas la commenter dans le htaccess. Dans le cas de la ligne 98, avec le .api et les / dans le titre, il sera très difficile, voir impossible, aux url_propres de produire une url qui embrouillerait la regexp. Ce n'est pas un problème. Dans le cas de la L88, par contre, la regexp est très large et les urls propres peuvent facilement la piéger si comme maintenant elles génèrent des urls propres uniquement numériques : elles génèrent alors une url que spip ne saura pas relire, comprendra mal. Or comme ce format site.ext/num de la ligne 88 est très bref et pour cela il est couremment utilisé à la main, sur les réseaux sociaux par exemple, mais aussi comme référence dans des articles "papiers". Il serait donc appréciable que les urls_propres, optionnellement, dans le cas où le titre est uniquement numérique, produisent une url préfixée par _, par exemple. Ainsi, l'article de titre "1989" aurait une url propre "_1989". La regexp de la L88 ne se déclancherait pas et tout pourrait cohabiter.
b_b commented 8 years ago
Owner

Hop, désolé je me suis trompé de ligne, c'est celle-ci que je voulais pointer :

http://core.spip.org/projects/spip/repository/entry/spip/htaccess.txt#L88

Hop, désolé je me suis trompé de ligne, c'est celle-ci que je voulais pointer : http://core.spip.org/projects/spip/repository/entry/spip/htaccess.txt#L88

b_b c'est pas très grave mais je ne comprend pas ta réponse #2.

Il serait intéressant de pouvoir utiliser normalement les urls propres et normalement les urls raccourcies. Il suffirait pour cela que les urls_propres, dans le cas où le titre est uniquement numérique, produisent une url préfixée par _, par exemple. Ainsi, l'article de titre "1989" aurait une url propre "_1989". La regexp de la L88 ne se déclancherait pas et tout pourrait cohabiter.

b_b c'est pas très grave mais je ne comprend pas ta réponse #2. Il serait intéressant de pouvoir utiliser normalement les urls propres et normalement les urls raccourcies. Il suffirait pour cela que les urls_propres, dans le cas où le titre est uniquement numérique, produisent une url préfixée par _, par exemple. Ainsi, l'article de titre "1989" aurait une url propre "_1989". La regexp de la L88 ne se déclancherait pas et tout pourrait cohabiter.
b_b commented 8 years ago
Owner

Hop, après une lecture rapide du code des urls propres je remarque la modification ne devrait pas causer de clash avec les urls "possibles" sur les autres types d'objets. Hésitez pas à proposer un patch ou même, soyons fous ^^, corriger directement dans la branche de dev du plugin urls_etendues :

http://zone.spip.org/trac/spip-zone/browser/core/plugins/urls_etendues

Hop, après une lecture rapide du code des urls propres je remarque la modification ne devrait pas causer de clash avec les urls "possibles" sur les autres types d'objets. Hésitez pas à proposer un patch ou même, soyons fous ^^, corriger directement dans la branche de dev du plugin urls_etendues : http://zone.spip.org/trac/spip-zone/browser/_core_/plugins/urls_etendues
Owner

corrigé par http://zone.spip.org/trac/spip-zone/changeset/85106
Version cible mise à 3.1
Statut changé à Fermé

corrigé par http://zone.spip.org/trac/spip-zone/changeset/85106 **Version cible mise à 3.1** **Statut changé à Fermé**
Owner
There is no content yet.
Sign in to join this conversation.
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.