Aller au contenu

Sujets conseillés

Posté

Bonjour,

Je n'arrive pas a cumuler ces 2 actions: une ré écriture + une 301 sur cette url:


RewriteRule ^horoscope/horoscope-annuel-([0-9]+)\.html$ /horoscope/horoscope-annuel.php [NC,L]

je veux que /horoscope/horoscope-annuel.php soit regdirige sur horoscope/horoscope-annuel-2010.html, et l'anne prochaine sur horoscope/horoscope-annuel-2011.html, ...

Merci de votre aide,

Cordialement.

Posté

Bonjour,

Pourrais-tu clarifier ta demande ? L'internaute devra-t-il taper http://www.domaine.com/horoscope/horoscope-annuel.php ou http://www.domaine.com/horoscope/horoscope-annuel-2010.html ?

Jean-Luc

Posté

Essaie ceci:

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^horoscope/horoscope-annuel-([0-9]+)\.html$ /horoscope/horoscope-annuel.php [L,R=301]

Jean-Luc

Posté

Un truc en plus ..s'il ne veut pas que les horoscopes de toutes les années pointent vers exactement le même résultat

RewriteRule ^horoscope/horoscope-annuel-([0-9]+)\.html$ /horoscope/horoscope-annuel.php?annee=$1 [L,R=301]

Il reste à gérer dans horoscope-annuel.php la page à renvoyer pour les années inexistantes...

Posté

Un truc en plus ..s'il ne veut pas que les horoscopes de toutes les années pointent vers exactement le même résultat

RewriteRule ^horoscope/horoscope-annuel-([0-9]+)\.html$ /horoscope/horoscope-annuel.php?annee=$1 [L,R=301]

Il reste à gérer dans horoscope-annuel.php la page à renvoyer pour les années inexistantes...

J'ai modifier ma regle, j'ai enlever le mot annuel dans l'url, donc je souhaite avoir comme lien:

http://domaine.com/horoscope/horoscope-2010.html

et que mon ancienne page:


http://domaine.com/horoscope/horoscope-annuel.php

soit redirigé sur la nouvelle url


http://domaine.com/horoscope/horoscope-2010.html

en 301, ca fonctionne pas, ca me fait:

/horoscope/horoscope-annuel.php?annee=2010 dans le navigateur au clic sur le lien: http://domaine.com/horoscope/horoscope-2010.html

Merci ;)

Posté
/horoscope/horoscope-annuel.php?annee=2010 dans le navigateur au clic sur le lien: http://domaine.com/horoscope/horoscope-2010.html
Si quand tu cliques sur le lien http://domaine.com/horoscope/horoscope-2010.html, c'est /horoscope/horoscope-annuel.php?annee=2010 qui apparaît dans la barre d'adresse du navigateur, cela veut dire que tu rediriges bien http://domaine.com/horoscope/horoscope-2010.html vers /horoscope/horoscope-annuel.php?annee=2010.

Il y a manifestement un problème de vocabulaire dans ta question. Dis-nous plutôt :

- quel est le lien que doit cliquer le visiteur

- ce qui doit apparaître dans la barre d'adresse

- le script qui doit s'éxécuter

A partir de là, on pourra t'aider plus efficacement.

Jean-Luc

Posté (modifié)

-Le visiteur doit cliquer sur le lien de cette forme: /horoscope/horoscope-2010.html et ca doit apparaitre sous cette forme dans la barre d'adresse.

-Le script qui doit s'executer et est physiquement sur le serveur est le fichier suivant dans le répertoire: /horoscope/horoscope-annuel.php

Donc si le visiteur clique sur l'ancien lien venant d'un moteur de recherche: /horoscope/horoscope-annuel.php, je veux que ca soit redirigé en 301 sur /horoscope/horoscope-2010.html.

Merci.

Modifié par ZuckBin
Posté

La première partie est facile à réaliser, mais pas la seconde : elle entraînerait une boucle infinie.

Par contre, pourquoi tiens-tu tant à changer l'url de ta page, si elle est déjà positionnée dans les moteurs de recherche ?

Posté

Essaie ceci:

RewriteRule ^horoscope/horoscope-annuel-([0-9]+)\.html$ /horoscope/horoscope-annuel.php[L]

RewriteCond %{REQUEST_URI} ^/horoscope/horoscope-annuel.php$
RewriteRule .* /horoscope/horoscope-annuel-2010.html [L,R=301]

La première ligne provoque l'exécution du script et la seconde partie provoque la redirection quand l'URL est /horoscope/horoscope-annuel.php.

Non testé: sans garantie!

Jean-Luc

Posté (modifié)

La redirection 301 fonctionne sauf que maintenant l'url /horoscope/horoscope-2010.html me retourne:

The page isn't redirecting properly

Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

* This problem can sometimes be caused by disabling or refusing to accept

cookies.

Je sais plus quoi faire.

C'est impossible ce que je demande ?

Je vais finir par renomer le fichier php, et faire une 301 de base si c'est pas possible.

Modifié par ZuckBin
Posté

Ceci devrait fonctionner comme tu le demandes:

RewriteRule ^horoscope/horoscope-annuel-([0-9]+)\.html$ /horoscope/horoscope-annuel.php[L]

RewriteCond %{THE_REQUEST} ^GET\ /horoscope/horoscope-annuel.php\ HTTP/
RewriteRule .* /horoscope/horoscope-annuel-2010.html [L,R=301]

En tout cas, ça fonctionne chez moi!

Je ne sais pas exactement pourquoi ma proposition précédente provoque la boucle infinie, alors que je retestais l'URL.

Jean-Luc

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...