J’en avais assez de donner à mes utilisateurs de phpMyChat une URL du type suivant :
http://www.phpheaven.net/rubrique.php3?id_rubrique=14
J’ai donc regardé ce qui est faisable avec la gestion d’URL de SPIP, et en m’inspirant des contributions de Fil [1] et Dan Hetzel [2], je peux maintenant leur fournir une URL bien plus simple :
http://www.phpheaven.net/projects/phpmychat/rubrique14.html
Et je peux même aller plus loin pour une rubrique, avec une URL encore plus simple :
http://www.phpheaven.net/projects/phpmychat/
Un avantage supplémentaire est que ce type d’URL est à priori recommandé pour faciliter le référencement d’un site [3].
Comment ça marche ?
Déjà, voyons comment générer de telles URL
La génération des URL utilisées par SPIP via les tags #URL_ARTICLE
ou #URL_RUBRIQUE
se configure via le script inc-urls.php3
.
Pour phpHeaven, j’ai donné à ces URL le nom friendly.
J’ai donc créé un fichier inc-urls-friendly.php3
, que vous pouvez télécharger ci-dessous :
J’ai ensuite fait référence à ce script dans inc-urls.php3
avec la ligne suivante :
$type_urls = 'friendly';
Voyons un peu ce que fait ce script :
- Une première fonction nommée text2sys
transforme toute chaîne de caractères en une chaîne plus simple, sans caractères spéciaux, accents ni caractères d’espacement. Ainsi, Chronique d'une licence non annoncée
[4] devient chronique_d_une_licence_non_annoncee
. Cette fonction utilise les capacités de translitération de SPIP 1.6, ce qui devrait lui permettre d’être aussi utilisée pour toutes les langues.
- une seconde fonction nommée arborescence
génère récursivement l’arborescence virtuelle de la rubrique correspondant à l’identifiant passé en paramètre, en transformant tous les noms de rubriques via la fonction text2sys
- enfin, les fonctions classiques de génération d’URL qui seront appelées par SPIP s’appuient sur arborescence
pour générer les URL complètes
Prévoyons maintenant le traitement de ces URL
Dans la configuration de Apache (.htaccess
ou httpd.conf
) :
RewriteEngine On
# Pas de reecriture pour certaines ressources
RewriteRule \.(gif|jpg|png|css|php|php3) - [NC,L]
RewriteRule ^(ecrire|IMG|NAVPICS|oo)/ - [NC,L]
# Gerer les URLs SPIP
RewriteRule ^.*(article|rubrique|breve|auteur|mot|forum)(.*).html$ /$1.php3?id_$1=$2 [QSA,L]
RewriteRule ^(.*)site(.*).html$ $1site.php3?id_syndic=$2 [QSA,L]
# Gerer les URL inconnues
RewriteRule ^(.+/.*)$ guess.php3?url=$1 [QSA,L]
Tout d’abord, on indique de ne pas transformer les URL qui correspondent à des ressources accessibles directement, telles que les images, les feuilles de style ou tout simplement les scripts PHP.
De la même manière, on indique de ne pas transformer les URL correspondant à des éléments ne se trouvant pas à la racine du site.
Ensuite, on traite le cas général des URL qui contiennent un des termes suivants :
- article
- rubrique
- breve
- auteur
- mot
- forum
On remplace ainsi toute URL ...nimportequoi_rubrique14.html
par /rubrique.php3?id_rubrique=14
.
Vous noterez que l’identifiant d’un site syndiqué se notant id_syndic
et non id_site
, il faut traiter ce cas à part. Pour le traiter en même temps, l’alternative serait de renommer les fichiers site.php3
et site-dist.html
en syndic.php3
et syndic-dist.html
et d’en tenir compte dans la génération des URL.
Et ce guess.php3
alors ???
Comme nous l’avons vu, il est possible pour les rubriques d’utiliser des URL simplifiées telle que celle-ci :
http://www.phpheaven.net/projects/phpmychat/
Les éléments étant normalement identifiés par la présence en fin d’URL d’une partie telle que rubrique14.html
, il fallait trouver un moyen de reconnaître à quelle rubrique l’URL ci-dessus fait référence.
L’idée à été de créer un script qui cherche parmi les cas possibles si l’un correspond à l’adresse demandée.
Voilà le script à télécharger :
Ce script qui est donc utilisé dans le cas où l’URL n’a pas pu être reconnue, parcours l’ensemble des rubriques de SPIP en tentant d’y reconnaître l’URL demandée.
En cas de succès, l’internaute est redirigé vers l’URL complète, et en cas d’echec il est redirigé vers la page d’accueil du site. Il serait possible bien entendu de générer plutôt une erreur 404 [5] pour indiquer la non disponibilité de la page demandée.
Aaaah, mes images ne s’affichent plus !
Pas de panique, ce sont seulement les URL relatives à l’intérieur des pages HTML qui ne sont plus valides.
Avec les URL classiques de SPIP, il n’y a pas de répertoire dans l’URL par rapport à la racine du site, donc il suffit de référencer les images, feuilles de styles, sources JavaScript, etc. en relatif, avec uniquement le nom du fichier s’il est dans cette même racine.
Quand le navigateur reçoit une page telle que http://www.phpheaven.net/projects/phpmychat/rubrique14.html
, si le code HTML contient <img src="puce.gif" />
, il va tout simplement demander au serveur le fichier http://www.phpheaven.net/projects/phpmychat/puce.gif
, qui n’existe à priori pas.
Il faut donc utiliser des URL absolues (i-e complètes) pour faire référence aux éléments externes, par exemple ici <img src="/puce.gif" />
, ou ajouter l’élément <base href="#URL_SITE_SPIP" />
dans l’en-tête HTML.
Ce problème n’est pas présent pour les documents et images contenus dans les articles, leurs URL étant générées par inc-urls-friendly.php3
, mais il est présent pour les vignettes, pour lesquelles ce code n’est pas utilisé.
Discussions par date d’activité
24 discussions
Bonjour,
Je suis débutante et j’érpouve quelques difficultés à comprendre les instructions. Vous écrivez :
J’aurais aimé avoir plus de détails car je ne vois pas où mettre cette ligne de code dans le script...
Et le fichier « guess.php3 » on est obligé de l’utiliser aussi ou c’est optionnel ?
Répondre à ce message
Bonjour,
Je suis débutante et j’érpouve quelques difficultés à comprendre les instructions. Vous écrivez :
Répondre à ce message
ça ne semble pas fonctionner avec SPIP 1.8.2 ; ou peut-être seulement quand le site est dans un sous répertoire ?
- ça génère bien les URL : URL/projects/phpmychat/rubrique14.html
- mais ne fait pas la correspondance (= page 404)
Répondre à ce message
excellent je n’avais pas fait attention a cette contribution précédament mais c’est tout a fait se que je recherche. Je voulais absolument pouvoir faire ressortir le nom de la rubrique dans l’url, propre2 ne permettant pas cela par defaut.
Par contre j’ai lu en détail le texte et les commentaires mais cela reste encore pour moi bien nébuleux donc c’est probable que je vais devoir poser des question :-)
merci pour la contrib
Répondre à ce message
Comment fait on pour remplacer les underscore « _ » par des tirets « - » dans l’adresse modifié ? ça se passe ou ? par exemple à la place de http://www.frenchbreaks.org/html/gallery/international_events/
je voudrais
http://www.frenchbreaks.org/html/gallery/international-events/
merci !
Ligne 9 du inc-urls-friendly.php3
$sys = ereg_replace(« [^.a-z0-9_=-]+ », « », $sys) ;
et ensuite
$url = arborescence($row[’id_rubrique’]).text2sys($row[’titre’]).’_article’.$id_article.’.html’ ;
et tout le reste (brève etc..)
Comme ceci plutôt
$url = arborescence($row[’id_rubrique’]).text2sys($row[’titre’]).’-article’.$id_article.’.html’ ;
Précisons que la question a une raison : Google préfère les tirets - à l’underscore _ pour le référencement.
Me demandez pas pourquoi, c’est comme ça...
Google considère tout simplement que « je_suis_fou » représente un unique mot, alors que « je-suis-fou » en représente 3 ...
Ben c’est sans doute parce que c’est plus lisible à l’oeil nu, non ? Parce que des underscores, c’est vraiment casse-bonbons...
Répondre à ce message
Quelqu’un a t il utilisé cette contrib, une adresse visible...
Merci
Comme indiqué dans l’article, c’est utilisé sur phpHeaven :
http://www.phpheaven.net/
je pense avoir un problème similaire à celui de mes camarades d’infortune !
un de mes articles (classé dans une sous-rubrique) voit son URL apparaître sous la forme « /lasousrubrique/larticle.html », alors que tous les articles étant directement classés dans une rubrique et non pas une sous-rubrique voient leur URL sapparaître sous la forme « /larticle.html ».
se pourrait-il que cela provienne de la façon de traiter la boucle ?
et dans ce pourrais-tu partager la tienne ?
deuxième problème que peuvent rencontrer certains : si le titre d’un article contient un « ? » le traitement ne fonctionne plus.
En tout cas, c’est ce qu’il se produit sur mon site.
Comment traiter le cas du point d’interrogation dans la fonction text2sys ?
un grand MERCI :-)
Merci pour ce script !! Mais le moteur de recherche SPIP ne fonctionne plus. Pourriez-vous m’indiquer quel code à rajouter pour qu’il soit de nouveau opérationnel avec ce programme.
Merci à vous.
bonjour, j’ai un petit problème avec la réécriture...
enfait, j’ai ajouté le fichier sur mon server, j’ai modifier la ligne dans inc-urls... mais ce qu’il se passe, la réécriture n’est pas effectué pour la plupart des pages, en fait, seules les pages contenant des images sont réécrite du type :
www.monsite/rubrique2/article4.html
mais par contre ces pages pour lesquelles la réécriture est faite ne s’affiche pas, il y a une erreur sur la page.
quequ’un vois ou est le problème ?
merci.
bon en fait, je n’avais pas vue : j’ai ajouté le fichier guess.php3, la réécriture se fait bien partout, mais par contre, le server ne trouve pas les pages :
The requested URL /theatre/thomas_ostermeier_article33.html was not found on this server.
comment faire pour résoudre se problème...?
merci.
Personne n’a eu ce problème ?
Pourtant je viens de tout recommencé, mais ca ne marche toujours pas,
comment faire pour que les liens avec les nouveaux url soient actifs ?
merci
il ne faut pas oublier de modifier, ou de créer le .htaccess sur le server.... voir plus haut.
Répondre à ce message
J’ai mis en pratique cette contrib et tout à marché comme sur des roulettes côté serveur. Seulement, comme je dois encore bidouiller pas mal de choses des mes squelettes (mon site étant déjà en ligne pour une question de référencement), je tiens encore à travailler en local. Et là, le fichier .htaccess ne fonctionne pas avec ma configuration du httpd.conf. Je suis sous XP avec easyphp 1.7.
Que dois-je modifier dans httpd.conf ? Je n’ose pas trop triturer, vu la complexité de ce fichier...
Merci pour cette super contrib et surtout pour les explication limpides de cet article ! J’ai pu le faire en 5 minutes.
Le problème venait du fait que mon site en local était dans un sous-répertoire et non à la racine du /www/
J’ai donc temporairement modifié les lignes suivantes du httpd.conf pour ne pas avoir à déplacer mon site (j’en ai d’autres là dedans !) :
#
# DocumentRoot : The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot « H :/Program Files/EasyPHP1-7/www/monsite/ »
AUSSI, il faut mettre la valeur AllowOverride sur All :
Options FollowSymLinks Indexes
AllowOverride All
PUIS REDEMARRER APACHE !
Et ça fonctionne comme sur le serveur, après avoir bien sûr modifier la configuration du site dans l’administration de SPIP pour qu’il prenne http://localhost et plus http://www.localhost/monsite
Et surtout merci, je n’y croyais plus :-)
Cela fonctionne nickel.
Répondre à ce message
Petit souci avec les sous répertoires classiques.
Les visites virtuelles de mon site ne sont plus accessibles.
http://www.saint-remy-de-provence.com/le_guide/la_visite_virtuelle_du_lac_article236.html
Le résultat
Not Found
The requested URL /home/saintrem/www/guess.php3 was not found on this server.
Comment corriger ?
Une idée ?
Pour l’instant j’ai transféré les fichiers chez un autre hébergeur, et donner une autre adresse pour la pop-up.
Mais il doit y avoir une autre solution.
Philippe
Il faut bien lire la doc, il faut juste modifier dans pas de reecriture pour certaines resources, |le sousrépertoire
Répondre à ce message
Ugo a écrit sans utiliser les balises
<code>
...je parlais d’un sous repertoire non spip !
le masquage des noms des articles rend l’acces au .html un peu merdique
d’ ou ma question ;)
Idem pour moi, à ceci près que j’ai mis l’adresse complète dans le .htaccess plutôt que le sous répertoire, mais cela fonctionne.
Répondre à ce message
une question un peu bete ;)
la modification fonctionne parafaitement
mais je possede un sous repertoire n’appartenant pas à spip
et quand je tente d’acceder à celui si (ou du moins à la page index.html, le serveur me repond « bad request »
une solution ?
Répondre à ce message
Bonjour
Comment faire pour avoir
http://www.philippe-donnart.com/spip.html
plutôt que http://www.philippe-donnart.com/spip_article9.html ?
Répondre à ce message
Voilà, je pense avoir réussi à installer cette superbe contribution, et cela marche pas mal à un détail près : les liens ont de gros soucis :/
http://www.generations-starwars.com/la_menace_fantome/fiche_technique_de_star_wars_episode_1_-_la_menace_fantome_article1.html
Pas de CSS ni d’images :(
Le fichier htaccess a été laissé tel quel à l’origine, je suis hébergé chez sivit.fr
Quelle solution à ce blem ?
Autre question : dans le dossier forum j’avais.. mon forum :) Celui ci était planté par le htaccess qui tentait d’appliquer ses règles. J’ai corrigé le soucis avec un sousdomaine : http://forum.monsit.TDL mais bon c’est qu’une solution de secour je pense.
merci par avance pour votre aide !
Bon et bien la solution c’est d’éditer à la main les templates, pardon squelettes, et de changer l’url des différents fichiers pour avoir la bonne ^^
J’ai le soucis avec les fichiers uploadés via l’interface admin d’ailleurs, ils ont également un lien relatif, faut que je change ca, si qqn sait où ca se trouve ca m’aiderai bien :)
Voilà j’ai réussi à corriger mon blem d’images par endroits, mais pas partout :(
Donc pour l’instant je bute sur le logo des articles... Sur l’index du site le logo est bien affiché suite à mes modifications, mais pas encore dans l’article lui même...
C’est cette entité : (#LOGO_ARTICLE dont je n’arrive pas à retrouver la référence de départ.
J’ai tenté une recherche pour remonter dans les fonctions de spip, mais le code est trop obscur pour un débutant comme moi.
je veux remplacer img src="IMG/... qui se trouve par défaut par l’url de mon site en fait ^^
Merci de votre aide !
Répondre à ce message
L’ideal serait d’avoir le nom de la rubrique precedent le titre de l’article, cela permet de mieux se reperer dans la navigation du site, non ?
par exemple :
http://www.monsite.com/rubrique1/mon_meilleur_article.html
Euh ... c’est exactement ce que ça fait, justement !!!
Je ne pense pas que ce soit exactement ca...
J’ai fait l’install de ton script et pour une rubrique j’ai :
http://www.monsite.com/rubrique1.html
pour un article :
http://www.monsite.com/pourquoi_cette_question_article1.html
Moi je desire avoir pour les rubriques :
http://www.monsite.com/mon_nom_perso_de_rubrique.html
mes articles :
http://www.monsite.com/mon_nom_perso_de_rubrique/pourquoi_cette_question_article1.html
C’est pour cela que je me permet de te relancer, car je n’ai peut être pas tout compris, notamment la config du fichier guess que j’ai laissé identique au tiens.
Si tu peut donner un exemple qui permet de renommer comme ci dessus.
Merci d’avance
@+
J’ai fait l’install de ton script et pour une rubrique j’ai :
http://www.monsite.com/rubrique1.html
pour un article :
http://www.monsite.com/pourquoi_cette_question_article1.html
Moi je desire avoir pour les rubriques :
http://www.monsite.com/mon_nom_perso_de_rubrique.html
mes articles :
http://www.monsite.com/mon_nom_perso_de_rubrique/pourquoi_cette_question_article1.html
Pourtant, regarde sur phpHeaven et tu verras que j’ai bien en gros ce que tu demandes ...
Dans cas ou configure ton le changement des noms de rubrique et l’arborescence ?
(un petit exemple)
Merci d’avance
Je ne comprends pas la question ...
Nicolas, il faut se rendre à l’évidence : quand on l’installe comme il est recommandé, ça donne :
http://lesite.com/rubrique9.html quand on entre dans la rubrique et quand on clique sur un article, on a :
http://lesite.com/le_nom_de_l_article.html
la mention à la rubrique9 n’apparaît pas sur l’url de l’article.
C’est vrai, sur phpheaven, c’est pas le cas, la rubrique apparaît bien.
Je l’ai testé sur endurathon.net mais j’adorerais pouvoir l’installer sur un plus gros site que j’ai, sous spip aussi. Mias c’est vrai j’attends de pouvoir avoir la mention de la rubrique.
Si vous pouviez nous indiquer comment vous y êtes parvenu...
Si je peux poser une deuxième question, auriez vous une idée de ce à quoi pourrait ressembler un « script » pareil adapté à un forum tel que phpBB, ou bien où on pourrait le trouver ?
Merci pour tout.
Répondre à ce message
Bonjour,
Bravo pour cette contrib ! J’ai enfin réussi à la mettre en oeuvre.
Voici mon expérience pour ceux qui désire savoir comment faire ;-)
D’abord, si elle marche comme prévue, ne faites aucun changement. Pour certains cela a l’air de le faire telle quelle !!!
Pour moi ça n’a pas fonctionné du premier coup. Voici l’explication.
Je fais toujours d’abord mes tests sur mon site test http://www.lyfoung.com/~test/ pour les appliquer en cas de succès sur mon site de prod http://www.lyfoung.com
Pour cette contrib particulière, j’ai eu beaucoup de difficultés sur mon site test, c’est parce que c’était un sous répertoire du site principal !!!
Voici les modifs que j’ai apporté pour obtenir ce que je voulais : http://www.monsite.com/rubrique1/article1.html
Modifier inc-urls-friendly.php :
Sans cela j’avais toujours : http://www.monsite.com/article1.html et non http://www.monsite.com/rubrique1/article1.html (Pour être clair, les secteurs n’apparaissent pas sans cette modif, car lorsque l’article est dans une sous-rubrique on a bien l’arborescence ..)
Pour les rubriques pas de soucis, on a bien : http://www.monsite.com/rubrique1
Une dernière remaque pour ceux qui ont leur site en sous répertoire, vous devez écrire ainsi votre htaccess :
Remarquez qu’il y a /sousrep devant /$1...!
Tout fonctionnera sauf pour les logos dont la source pointe toujours sur la racine .. -((
J’ai passé une journée dessus et ma conclusion est que ça ne fonctionne pas. J’ai seulement réussi à ne plus faire marcher spip à force de tout modifier :-((
Si quelqu’un y est parvenu, merci de partager l’expérience.
Je crois pour ma part qu’il faudrait un truc comme
<base href="#URL_SITE_SPIP">
mais pour src= et non href= ...Genre<base src="#URL_SITE_SPIP">
quoi !!Pour que cela fonctionne il faudrait revoir le moteur de spip mais ça c’est une autre histoire ( car même la solution d’origine proposée par spip pose le même souci !!)
Je n’utilise pas la fonction guess.php, aller comprendre pourquoi, chez moi ça me plante mon site.
Au fait, vous pourrez voir le résultat sur mes deux sites (ok sur http://www.lyfoung.com/ et non ok et non mis en place sur http://www.lyfoung.com/~test/)
@+
Txia
Pour les logos, il faut rajouter la ligne suivante dans le .htaccess :
RewriteRule IMG(.*)$ /IMG/$1 [QSA,L]
AVANT tout le reste
Répondre à ce message
Bonjour à tous,
merci pour cette contrib, cependant deux petits problèmes :
- Que fait-on du fichier guess.phph3 ? il faut le coper coller quelque part ou le mettre dans un dossier ?
- je n’ai pas compris comment regler le problème des ancres, qq pourrait il m’expliquer ?
Répondre à ce message
J’utilise l’URL rewriting decrite dans cette page pour mon site. Mais bizarrement j’ai des pb de référencement que je n’avais pas avec mes anciens sites . Qd Google passe il me référence 1 page puis elle disparait puis d’autres pages et ca disparait... ca fait 1 mois que ca dure et je n’arrive pas a comprendre pourquoi alors que j’avais aucun pb lorsque je n’utilisais pas cette methode... Si qqun a le mm probleme ou une idée je suis preneur lol
Répondre à ce message
Bonjour,
MERCI pour cette contribution. Tout fonctionne.
Juste une chose.... mes ancres nommées (#haut et #bas), haut de page et bas de page, ne sont pas reconnues et renvoient donc par défaut à la page d’accueil du site.
J’ai placé dans chaque page :
Avez vous une idée ?
merci
annabelle
Salut,
il te suffit de rajouter le code spip pour acceder à la page de ton article ou celle de ta rubrique avant #haut comme #URL_ARTICLE#haut ou #URL_RUBRIQUE#haut
Cela fait près de 3 mois que le site fonctionne avec la réécriture et c’est PARFAIT ! Et pour les ancres aussi ! Merci.
Toutefois j’ai un souci : le raccourci typo de SPIP pour les notes de bas de page renvoient à la page d’accueil du site.
Cela donne un lien du type : http://www.monsite.fr/#nb1
Je suis sous 1.6 et chez Amen. Dois je réécrire quelque chose dans le script de génération des urls ?
Avez vous une idée ? bonne année
annabelle
Voici une solutions qui devrait résoudre le problème des notes, et encore même
d’autres :
En fait c’est tout simple :
Il suffit d’enlever en haut des squelettes :
<base ref="#URL_SITE_SPIP">
car c’est cela qui bloque les fonctionnalités évoquées plus haut
en faisant croire à SPIP que la page courante est http://url-du-site/
pour toutes les pages.
et de changer les liens vers les images ( dans les squelettes seulement ) de la manière suivante :
< ...
IMG SRC=« #URL_SITE_SPIP/images/rubrique-1_02.gif » WIDTH=593 HEIGHT=9 ALT=« » ...
>
Répondre à ce message
Salut
Ma question est : quand on est sur un hebergeur public, et on n’a pas acces à la config d’Apache, il suffit de créer le .htacces dans tes dossiers du site ?
Merci de m’eclaircir
oui, à la racine du site
Répondre à ce message
Oui c’est cool , mais j’ai le meme probleme, les sous rubriques apparaissent dans l’url mais pas les rubriques.
solution svp
Best,
Rob
Hier soir, ca a marché sauf pour les rubriques, ce matin je trouve <<
Erreur dans la requête envoyée à MySQL :
SELECT auteurs.* FROM spip_auteurs AS auteurs,spip_auteurs_articles AS rel_auteurs WHERE auteurs.id_auteur=rel_auteurs.id_auteur AND rel_auteurs.id_article=’15’ AND NOT(auteurs.statut=’5poubelle’) GROUP BY auteurs.id_auteur ORDER BY auteurs.nom
> Can’t create/write to file ’/tmp/#sql_2cb6_0.MYI’ (Errcode : 13)
>>
C’est moi ou mon hoster ?
:)
Rob
Répondre à ce message
Tout vas très bien pour mon site sur ouvaton (pour le momment ! - ce site est en construction ! :-) )
Répondre à ce message
J’ai essayé d’adapter ce script pour un site non SPIP
Il n’y a pas moyen que ça marche...
Je pense que le pb vient de l’hébergeur, à savoir Online.net
Avec le fichier .htaccess transformé, ça donne un msg d’erreur. (même en ne mettant que la 1e ligne « RewriteEngine On »)
Voilà le msg :
— -
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@proxad.net and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
— -
Comment faire qq chose de similaire chez Online ?
Autrement, je trouve ça génial !
Répondre à ce message
excellent !
j’ai améliorer un petit peu la forme dans le fichier inc-urls-friendly :
dans chaque fonction :
$url = arborescence($id_rubrique).’_r’.$id_rubrique.’.html’ ;
return $url ;
j’ai remplacé les termes ’rubrique’ par ’_r’,’article’ par ’_a’ ...etc
ce qui donne :
www.monsite.com/le-nom-de-mon-article_a115.html
ou
www.monsite.com/ma-rubrique_r54.html
..et pareil pour tout les autres termes (breves -> _b, auteur -> ’_au’,mot -> ’_m’ ...)
par contre, j’ai pris le ’-’ pour séparateurau lieu du ’_’, pour pas avoir de conflit avec un nom d’article
il faut aussi modifier les .htaccess en fonction :
# Gerer les URLs SPIP
RewriteRule ^.*(_a)(.*).html$ /article.php3 ?id_article=$2 [QSA,L]
RewriteRule ^.*(_r)(.*).html$ /rubrique.php3 ?id_rubrique=$2 [QSA,L]
RewriteRule ^.*(_b)(.*).html$ /breve.php3 ?id_breve=$2 [QSA,L]
RewriteRule ^.*(_au)(.*).html$ /auteur.php3 ?id_auteur=$2 [QSA,L]
RewriteRule ^.*(_m)(.*).html$ /mot.php3 ?id_mot=$2 [QSA,L]
RewriteRule ^.*(_f)(.*).html$ /forum.php3 ?id_forum=$2 [QSA,L]
on peut auusi rajouter la gestion de l’erreur 404&403
# Gerer les erreurs 404
ErrorDocument 404 /404.php3
ErrorDocument 403 /403.php3
en tout cas, merci pour la contrib de départ :)
Pour voir le résultat : www.prisonsoup.com
avec ton système, il faut au moins avoir
http://example.com/_a42.html
je trouve ça moins pratique que
http://example.com/article42.html
On est d’accord sur un titre court, ca sert a rien, mais sur des long titres, je pense que ca se justifie
je me suis inspiré du site du ministère de l’agriculture ;)
http://www.agriculture.gouv.fr/spip/
Abasourdi devant ton expression « en tout cas, merci pour la contrib de départ :) » même avec le simley
De toute façon, tout ça a déjà été fait mille fois ici ou ailleurs, mais faut bien réexpliquer dix-mille fois pour que ça se diffuse. Alors à abasourdi, abasourdi et demi ... et je vous embrasse tous bien fort !
Abasourdi devant ton expression « en tout cas, merci pour la contrib de départ :) » même avec le simley
t’aurais préféré quoi ? pas de remerciement du tout :-o ?
Répondre à ce message
Bonsoir,
Cela ne fonctionne pas dans mon cas.
Lorsque l’on survole le titre d’un article, j’ai bien l’url : « titre_de_mon_article.. » qui s’affiche dans la barre d’état.
Par contre j’ai une erreur 404 au telechargement de l’article.
L’hebergeur est amen.
J’ai testé le fonctionnement de la reecriture d’url comme indiqué dans japonim.net et cela fonctionne.
Cordialement,
Eric
adresse du site : opalesurf.webhop.org
les modifs apportées à .htaccess :
# Gerer les URLs SPIP
RewriteRule ^.*(article|rubrique|breve|auteur|mot|forum)(.*).html$ $1.php3 ?id_$1=$2 [QSA,L]
RewriteRule ^(.*)site(.*).html$ /$1site.php3 ?id_syndic=$2 [QSA,L]
suppression de / avant « $1site.php3 ?id_syndic=$2 [QSA,L] »
ajout de la balise : < base href="http://opalesurf.webhop.org/" / >
dans chaque fichier de squelette article.html ....
L’affichage de sous repertoires pour les sous rubriques fonctionne également.
Cordialement,
Eric
salut
j’ai exactement les même galères que toi, mais j’ai copier coller tes modifs htaccess c’est à dire supprimer l’espace avant le slash (/), et rien ni fait.
J’aurais manquer quelques chose ?
Sinon BRAVO nicolas, depuis le temps que je galère avec les urls simplifiés.
Répondre à ce message
J’utilise plusieurs sites spip sur le même serveur.
J’ai choisi d’installer les redirections pour le spip installé sur le repertoire
www.monsite.ext/spiptests/
Tout semble baigner sauf que les liens me redirigent sur www.monsite.ext/larubrique.html
www.monsite.ext/larticle.html
au lieu de
www.monsite.ext/spiptests/larubrique.html
www.monsite.ext/spiptests/larticle.html
En clair je suis redirigé sur les articles ou les rubriques d’un autre site installé à la racine.
Je cherche une soluc’ :-(
C’’est corrigé mais çà ne marche pas encore pour les articles de sous rubriques et les appels de sous rubriques.
J’ai modifié les directives :
RewriteEngine On
# Pas de reecriture pour certaines ressources
RewriteRule \.(gif|jpg|png|css|php|php3) - [NC,L]
RewriteRule ^(ecrire|IMG|NAVPICS|oo)/ - [NC,L]
# Gerer les URLs SPIP
RewriteRule ^.*(article|rubrique|breve|auteur|mot|forum)(.*)\.html$ $1.php3 ?id_$1=$2 [QSA,L]
RewriteRule ^(.*)site(.*)\.html$ $1site.php3 ?id_syndic=$2 [QSA,L]
# Gerer les URL inconnues
RewriteRule ^(.+/.*)$ guess.php3 ?url=$1 [QSA,L]
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |