Passage en 1.9 et htaccess

Bonjour

Je suis en train de tester la 1.9 en local avec un site pour lequel j'ai créé des règles de réécriture dès la 1.7.2 (donc sans le htaccess fournit depuis la 1.8.1).

Cette règle est dans le htaccess :
RewriteRule ([a-z]+)-([^=]*)-([0-9]+).html$ $1.php3?id_$1=$3 [QSA,L]

Elle me permet de réécrire les urls des articles, brèves et rubriques.

Ainsi pour un article l'url sera article-titre_de_mon_article-iddel'article.html

Avec la 1.9 je vois donc un problème puisque si je supprime les fichiers article.php3, rubrique.php3 et breve.php3 pour garder que spip.php ma règle de réécriture ne fonctionnera plus.

Ainsi par quoi dois-je remplacer $1.php3?id_$1=$3 ?

Merci d'avance pour votre aide

Philippe Bessière a écrit :

Bonjour

Je suis en train de tester la 1.9 en local avec un site pour lequel j'ai créé des règles de réécriture dès la 1.7.2 (donc sans le htaccess fournit depuis la 1.8.1).

Cette règle est dans le htaccess :
RewriteRule ([a-z]+)-([^=]*)-([0-9]+).html$ $1.php3?id_$1=$3 [QSA,L]

Elle me permet de réécrire les urls des articles, brèves et rubriques.

Ainsi pour un article l'url sera article-titre_de_mon_article-iddel'article.html

Avec la 1.9 je vois donc un problème puisque si je supprime les fichiers article.php3, rubrique.php3 et breve.php3 pour garder que spip.php ma règle de réécriture ne fonctionnera plus.

Ainsi par quoi dois-je remplacer $1.php3?id_$1=$3 ?

Je dirais spip.php?page=$1&id_$1=$3

job a écrit :

Philippe Bessière a écrit :
  

Bonjour

Je suis en train de tester la 1.9 en local avec un site pour lequel j'ai créé des règles de réécriture dès la 1.7.2 (donc sans le htaccess fournit depuis la 1.8.1).

Cette règle est dans le htaccess :
RewriteRule ([a-z]+)-([^=]*)-([0-9]+).html$ $1.php3?id_$1=$3 [QSA,L]

Elle me permet de réécrire les urls des articles, brèves et rubriques.

Ainsi pour un article l'url sera article-titre_de_mon_article-iddel'article.html

Avec la 1.9 je vois donc un problème puisque si je supprime les fichiers article.php3, rubrique.php3 et breve.php3 pour garder que spip.php ma règle de réécriture ne fonctionnera plus.

Ainsi par quoi dois-je remplacer $1.php3?id_$1=$3 ?

Je dirais spip.php?page=$1&id_$1=$3
  
Merci beaucoup ça a l'air de fonctionner parfaitement
Je dois faire aussi des redirections comme
RewriteRule annuaire\.html$ annuaire.php3?id_rubrique=9 [L]
je suppose qu'il faut remplacer annuaire.php3?id_rubrique=9 par spip.php?page=annuaire&id_rubrique=9; mais ça fait une page blanche. Aurais tu une idée ?
Philippe
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ

Philippe Bessière a écrit :

job a écrit :

Philippe Bessière a écrit :
  

Bonjour

Je suis en train de tester la 1.9 en local avec un site pour lequel j'ai créé des règles de réécriture dès la 1.7.2 (donc sans le htaccess fournit depuis la 1.8.1).

Cette règle est dans le htaccess :
RewriteRule ([a-z]+)-([^=]*)-([0-9]+).html$ $1.php3?id_$1=$3 [QSA,L]

Elle me permet de réécrire les urls des articles, brèves et rubriques.

Ainsi pour un article l'url sera article-titre_de_mon_article-iddel'article.html

Avec la 1.9 je vois donc un problème puisque si je supprime les fichiers article.php3, rubrique.php3 et breve.php3 pour garder que spip.php ma règle de réécriture ne fonctionnera plus.

Ainsi par quoi dois-je remplacer $1.php3?id_$1=$3 ?

Je dirais spip.php?page=$1&id_$1=$3
  
Merci beaucoup ça a l'air de fonctionner parfaitement
Je dois faire aussi des redirections comme
RewriteRule annuaire\.html$ annuaire.php3?id_rubrique=9 [L]
je suppose qu'il faut remplacer annuaire.php3?id_rubrique=9 par spip.php?page=annuaire&id_rubrique=9; mais ça fait une page blanche. Aurais tu une idée ?

Tu devrais regarder dans le htaccess.txt fourni avec spip
il y a je pense tout ce que tu veux
ici la ligne qui t'intéresse c'est :
RewriteRule ^(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|resume|sommaire|sommaire_texte)\.php3?$ spip.php?page=$1 [QSA,L]
Pour ton fichier annuaire la réécriture sera
RewriteRule ^(annuaire)\.php3?$ spip.php?page=$1 [QSA,L]

A+
Job

job a écrit :

Philippe Bessière a écrit :
  

job a écrit :
    

Philippe Bessière a écrit :
  

Bonjour

Je suis en train de tester la 1.9 en local avec un site pour lequel j'ai créé des règles de réécriture dès la 1.7.2 (donc sans le htaccess fournit depuis la 1.8.1).

Cette règle est dans le htaccess :
RewriteRule ([a-z]+)-([^=]*)-([0-9]+).html$ $1.php3?id_$1=$3 [QSA,L]

Elle me permet de réécrire les urls des articles, brèves et rubriques.

Ainsi pour un article l'url sera article-titre_de_mon_article-iddel'article.html

Avec la 1.9 je vois donc un problème puisque si je supprime les fichiers article.php3, rubrique.php3 et breve.php3 pour garder que spip.php ma règle de réécriture ne fonctionnera plus.

Ainsi par quoi dois-je remplacer $1.php3?id_$1=$3 ?

Je dirais spip.php?page=$1&id_$1=$3
  

Merci beaucoup ça a l'air de fonctionner parfaitement
Je dois faire aussi des redirections comme
RewriteRule annuaire\.html$ annuaire.php3?id_rubrique=9 [L]
je suppose qu'il faut remplacer annuaire.php3?id_rubrique=9 par spip.php?page=annuaire&id_rubrique=9; mais ça fait une page blanche. Aurais tu une idée ?
    
Tu devrais regarder dans le htaccess.txt fourni avec spip
il y a je pense tout ce que tu veux
ici la ligne qui t'intéresse c'est :
RewriteRule ^(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|resume|sommaire|sommaire_texte)\.php3?$ spip.php?page=$1 [QSA,L]
Pour ton fichier annuaire la réécriture sera
RewriteRule ^(annuaire)\.php3?$ spip.php?page=$1 [QSA,L]

A+
Job

Merci
En fait j'ai vidé le cache et spip.php?page=annuaire&id_rubrique=9 fonctionne

spip.php?page=$1 [QSA,L] ne fonctionne pas. Pour annuaire c'est une page html. Ca fonctionne pas non plus avec spip.php?page=$1

Ces règles sont vraiment complexes !

Philippe

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ

Merci beaucoup ça a l'air de fonctionner parfaitement
Je dois faire aussi des redirections comme
RewriteRule annuaire\.html$ annuaire.php3?id_rubrique=9 [L]
je suppose qu'il faut remplacer annuaire.php3?id_rubrique=9 par spip.php?page=annuaire&id_rubrique=9; mais ça fait une page blanche. Aurais tu une idée ?
    
Tu devrais regarder dans le htaccess.txt fourni avec spip
il y a je pense tout ce que tu veux
ici la ligne qui t'intéresse c'est :
RewriteRule ^(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|resume|sommaire|sommaire_texte)\.php3?$ spip.php?page=$1 [QSA,L]
Pour ton fichier annuaire la réécriture sera
RewriteRule ^(annuaire)\.php3?$ spip.php?page=$1 [QSA,L]

Merci
En fait j'ai vidé le cache et spip.php?page=annuaire&id_rubrique=9 fonctionne

spip.php?page=$1 [QSA,L] ne fonctionne pas. Pour annuaire c'est une page html. Ca fonctionne pas non plus avec spip.php?page=$1

lorsque tu écris dans ton .htaccess
RewriteRule ^(annuaire)\.php3?$ spip.php?page=$1 [QSA,L]

donc quand tu vas entrer dans l'url de ton navigateur
que (qui n'existe plus dans spip 1.9) il va chercher grace à ta regle de réécriture (RewriteRule) l'adresse spip.php?page=annuaire&id_rubrique=9
Donc le test a faire c'est de comparer les résultats de
la page annuaire.php3?id_rubrique=9 (qui doit etre la meme que spip.php?page=annuaire&id_rubrique=9)

Par contre fais attention à l'ordere dans lequel tu as mis des regle de réecriture dans ton fichier .htaccess (c'est tres important)

En espérant d'avoir un peu éclairci les choses

Job

job a écrit :

Merci beaucoup ça a l'air de fonctionner parfaitement
Je dois faire aussi des redirections comme
RewriteRule annuaire\.html$ annuaire.php3?id_rubrique=9 [L]
je suppose qu'il faut remplacer annuaire.php3?id_rubrique=9 par spip.php?page=annuaire&id_rubrique=9; mais ça fait une page blanche. Aurais tu une idée ?
    

Tu devrais regarder dans le htaccess.txt fourni avec spip
il y a je pense tout ce que tu veux
ici la ligne qui t'intéresse c'est :
RewriteRule ^(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|resume|sommaire|sommaire_texte)\.php3?$ spip.php?page=$1 [QSA,L]
Pour ton fichier annuaire la réécriture sera
RewriteRule ^(annuaire)\.php3?$ spip.php?page=$1 [QSA,L]
      

Merci
En fait j'ai vidé le cache et spip.php?page=annuaire&id_rubrique=9 fonctionne

spip.php?page=$1 [QSA,L] ne fonctionne pas. Pour annuaire c'est une page html. Ca fonctionne pas non plus avec spip.php?page=$1

lorsque tu écris dans ton .htaccess
RewriteRule ^(annuaire)\.php3?$ spip.php?page=$1 [QSA,L]

donc quand tu vas entrer dans l'url de ton navigateur
que (qui n'existe plus dans spip 1.9) il va chercher grace à ta regle de réécriture (RewriteRule) l'adresse spip.php?page=annuaire&id_rubrique=9
Donc le test a faire c'est de comparer les résultats de
la page annuaire.php3?id_rubrique=9 (qui doit etre la meme que spip.php?page=annuaire&id_rubrique=9)
  

J'ai comparé les 2 urls : c'est identiques

Par contre fais attention à l'ordere dans lequel tu as mis des regle de réecriture dans ton fichier .htaccess (c'est tres important)

Je commence par la régle générale

RewriteRule ([a-z]+)-([^=]*)-([0-9]+).html$ spip.php?page=$1&id_$1=$3

Puis les régles particulières. Comme RewriteRule annuaire\.html$ spip.php?page=annuaire&id_rubrique=9

En espérant d'avoir un peu éclairci les choses

Job

Merci
Philippe

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ