url rewriting sous spip

soundtraker

WRInaute discret
hello a tous,
j'ai un petit soucis actuellement avec l'url rewriting de spip. En effet, pour l'instant mes urls sont du type
- http://www.domaine.com/spip.php?article3598

Lorque j'active l'url rewriting, mes urls sont du type :
- http://www.domaine.com/article3598.html

Jusque la tout va bien, par contre, lorsque maintenant on tape une url sous la forme originale (http://www.domaine.com/spip.php?article3598), on arrive sur la page d'accueil, spip ne trouve donc pas le bon article).

Comment faire pour signaler a spip la nouvelle url??
 

jeroen

WRInaute passionné
C'est un problème de SPIP, il devrait faire un 301 vers l'URL réécrite. Question : pourquoi veux tu accéder à tes pages avec les anciennes url ?
 

soundtraker

WRInaute discret
Pour éviter de perdre tout les liens vers mes articles. Je propose aux internautes d'ajouter certaines choses à leurs blogs/sites avec un lien vers l'article en question. Mais depuis le temps qu'ils le font, si je change mes urls, les liens sur leurs sites pointeront vers une page d'erreur donc pas cool
 

jeroen

WRInaute passionné
Il faut donc rajouter un morceau de programme dans le fichier spip.php qui teste l'URL demandée et qui redirige le cas échéant vers la bonne url.

Code:
if (strstr($_SERVER["REQUEST_URI"],"spip.php"))
{
header("HTTP/1.1 301 Moved Permanently");
header ('location: '.$_SERVER['QUERY_STRING'].'.html');
header("Connection: close");
}

(ou un truc du genre)
 

soundtraker

WRInaute discret
ah mais je pense que tu a presque la solution! En effet j'ai ajouté ce bout de code dans le fichier spip.php (et ca n'a pas marché, le site etait très ralenti) par contre il y avait pratiquement la même redirection :

Code:
# rediriger les anciens URLs de la forme page.php3fond=xxx
if (isset($_GET['fond'])) {
	include_spip('inc/headers');
	redirige_par_entete(generer_url_public($_GET['fond']));
 }
 

patrick.kreizennarson

Nouveau WRInaute
soundtraker a dit:
ah mais je pense que tu a presque la solution! En effet j'ai ajouté ce bout de code dans le fichier spip.php (et ca n'a pas marché, le site etait très ralenti) par contre il y avait pratiquement la même redirection :

Code:
# rediriger les anciens URLs de la forme page.php3fond=xxx
if (isset($_GET['fond'])) {
	include_spip('inc/headers');
	redirige_par_entete(generer_url_public($_GET['fond']));
 }

Donc le bout de code que tu proposes permet de rediriger correctement toutes tes anciennes adresses ?
J'ai jamais osé faire le rewritting parce que je crains justement que mes adresses communiquées ça et là ne deviennent plus valides.
Je peux copier/coller ton code dans spip.php sans soucis ?
Merci...
 

Discussions similaires

M
Réponses
9
Affichages
6K
maitreweedoo
M
Haut