8791 sujets

Développement web côté serveur, CMS

Modérateur
Bonjour,

J'ai passé mes url du type http://perso.jojaba.fr/?/Web-utilisation-developpement/Installer-plusieurs-versions-de-Firefox-sur-un-poste à http://perso.jojaba.fr/Web-utilisation-developpement/Installer-plusieurs-versions-de-Firefox-sur-un-poste en utilisant une réécriture à l'aide d'un fichier .htaccess.

Je passe à présent à la redirection des anciennes url (avec le ?) vers les nouvelles ( sans ?). C'est là que j'ai des problèmes, il suffit d'essayer d'accéder à la page ci-dessus en utilisant les deux liens pour s'en rendre compte. Voici mon htaccess :
# Reecriture d'url pour Plume CMS
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([^\.]+)$ /index.php?$1 [L]

# Redirection pour eviter duplicate content et conserver referencement
Redirect permanent /?/  http://perso.jojaba.fr/
 
Redirect permanent /?  http://perso.jojaba.fr



J'avais tenté d'autres choses mais sans succès... Je vous les donne ci-dessous :

Redirect permanent /?/Web-utilisation-developpement  http://perso.jojaba.fr/Web-utilisation-developpement
 
Redirect permanent /?/Traductions-diverses  http://perso.jojaba.fr/Traductions-diverses
 
Redirect permanent /?/Annuaire  http://perso.jojaba.fr/Annuaire
 
Redirect permanent /?/sitemap  http://perso.jojaba.fr/sitemap
 
Redirect permanent /?/_Contact  http://perso.jojaba.fr/_Contact
 
Redirect permanent /?/Web-utilisation-developpement/  http://perso.jojaba.fr/Web-utilisation-developpement/
 
Redirect permanent /?/Traductions-diverses/  http://perso.jojaba.fr/Traductions-diverses/
 
Redirect permanent /?/Annuaire/  http://perso.jojaba.fr/Annuaire/


Pour l'instant, la redirection se fait bien puur les dossiers sans / final, exemple : http://perso.jojaba.fr/?/Web-utilisation-developpement
Mais dès que j'ajoute un /, ça ne fonctionne plus : http://perso.jojaba.fr/?/Web-utilisation-developpement/ ou http://perso.jojaba.fr/?/Web-utilisation-developpement/Installer-plusieurs-versions-de-Firefox-sur-un-poste

Merci d'avance pour votre aide. Smiley smile
Il faut que ton hébergeur accepte la réécriture.

Renseigne toi auprès de ton hébergeur.
Modérateur
CVS a écrit :
Il faut que ton hébergeur accepte la réécriture.
Renseigne toi auprès de ton hébergeur.

Mon hébergeur prend en charge la réécriture (ovh). Pas d esouci pour la réécriture, mais il faudrait que la redirection fonctionne également, et là, ça ne fonctionne pas pour certains cas.
Modifié par jojaba (23 Dec 2012 - 06:07)
Il faut mettre ton code de réécriture dans .htaccess

J'ai un site chez Ovh, et ça marche nickel idem chez mon autre hébergeur.
Modérateur
Oui, c'est ce que je fais. Je répète qu'il n'y a aucun souci pour la réécriture, mais une fois qu'on a mis en place cette (ces) règle(s) en place, il faut ensuite procéder à une redirection des anciennes url vers les nouvelles pour éviter un duplicate content, et c'est là que ça ne va pas...
Modérateur
J'ai tenté ça sans succès :
# Reecriture d'url pour Plume CMS
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([^\.]+)$ /index.php?$1 [L]

# Redirection pour eviter duplicate content et conserver referencement
RedirectMatch 301 ^/\?([^\.]+)$  http://perso.jojaba.fr$1
 
RewriteEngine on
RewriteRule ^/\?([^\.]+)$  http://perso.jojaba.fr$1  [L,R=301]

Je brûle ?
Modérateur
Encore une tentative (redirection avant rewrite) :
# Redirection pour eviter duplicate content et conserver referencement
RedirectMatch 301 ^/\?([^\.]+)$  http://perso.jojaba.fr$1
 

# Reecriture d'url pour Plume CMS
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([^\.]+)$ /index.php?$1 [L]

Toujours pas bonne Smiley decu
A mon avis tu es sur le mauvais chemin.

Il y a bien quelqu'un sur le forum, qui pourra te conseiller.

Smiley cligne
Modérateur
CVS a écrit :
A mon avis tu es sur le mauvais chemin.

Il y a bien quelqu'un sur le forum, qui pourra te conseiller.

Smiley cligne

Oui, on va attendre alors...
Modérateur
Bon ben, j'ai testé encore avec quelque chose vu ici : http://www.annuaire-info.com/redirection-301/

# redirection pour eviter duplicate content
RedirectMatch 301 ^\?[^\.]+$  http://perso.jojaba.fr$1
 

# Reecriture d'url pour Plume CMS
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^\?[^\.]+$  http://perso.jojaba.fr$1  [R=301]
RewriteRule ^([^\.]+)$ /index.php?$1 [L]


Marche pas non plus...
Pour rappeler ce que je cherche à faire, je souhaiterais réaliser une redirection 301 par htaccess des url du type :
http://perso.jojaba.fr/?/Web-utilisation-developpement/Installer-plusieurs-versions-de-Firefox-sur-un-poste

Vers url sans "?" :
http://perso.jojaba.fr/Web-utilisation-developpement/Installer-plusieurs-versions-de-Firefox-sur-un-poste

Modifié par jojaba (24 Dec 2012 - 07:36)
Perso, je referai mes redirections au propre.

C'est ce qu'il y a de plus simple pour toi.
Ça ne fonctionne pas car mod rewrite travaille sur l'URI, tout ce qui se trouve après le point d'interrogation ne fait pas parti de l'URI mais du query string. Il faut que tu regardes du côté de :


RewriteCond %{QUERY_STRING}


Je te laisse chercher. Smiley cligne
Modérateur
jb_gfx a écrit :
Ça ne fonctionne pas car mod rewrite travaille sur l'URI, tout ce qui se trouve après le point d'interrogation ne fait pas parti de l'URI mais du query string. Il faut que tu regardes du côté de :


RewriteCond %{QUERY_STRING}


Je te laisse chercher. Smiley cligne

Merci, ok pour le query, je comprends mieux à présent. Smiley smile
Modérateur
J'y arrive pas !
J'ai fait ça :
# Reecriture d'url pour Plume CMS
Options +FollowSymLinks
RewriteEngine on
# Redirection pour éviter duplicate content
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^index\.php$  http://perso.jojaba.fr/%1  [R=301]
# Reecriture effective
RewriteRule ^([^\.]+)$ /index.php?$1 [L]

Quand je clique sur un menu du type suivant :
http://perso.jojaba.fr/Web-utilisation-developpement/

Ça me renvoie vers :
http://perso.jojaba.fr/Web-utilisation-developpement/?Web-utilisation-developpement/

Pour les url du type :
http://perso.jojaba.fr/?/Web-utilisation-developpement/
Pas de redirection

Je sèche vraiment complètement, j'ai pas trouvé la bonne ressource probablement, mais je dois bien avouer que je ne comprends pas trop comment définir ces règles... Merci beaucoup pour une aide supplémentaire.
Modifié par jojaba (27 Dec 2012 - 20:23)
Essai de trouver un cours qui traite du sujet ou tourne toi vers un professionnel mais là il va falloir sortir la carte bancaire ...
Modérateur
CVS a écrit :
Essai de trouver un cours qui traite du sujet ou tourne toi vers un professionnel mais là il va falloir sortir la carte bancaire ...

Payer pour un site perso ? Non, on va patienter encore un peu, peut-être que la solution viendra plus tard...
En attendant, j'ai mis en place une balise link canonical du type :
<link rel="canonical" href="http://perso.jojaba.fr/Web-utilisation-developpement/" />

Ça devrait résoudre temporairement le problème de duplicate content...
Modifié par jojaba (29 Dec 2012 - 16:18)
Modérateur
CVS a écrit :
Je t'ai envoyé un MP qui peut peut être t'aider.

Merci (j'ai pas compris pourquoi tu m'as donné ça par MP...)
J'ai tenté ça :
# Reecriture d'url pour Plume CMS
# Options +FollowSymLinks
RewriteEngine on
# Reecriture effective
RewriteRule ^([^\.]+)$ /index.php?$1 [L]
# Redirection pour éviter duplicate content
RewriteCond %{QUERY_STRING} ^/(.*)$
RewriteRule ^index\.php$ /%1 [L,R=301]

Ne fonctionne pas non plus... Mais au moins je n'ai pas d'erreur 500...
Pour info, voici le lien que CVS m'avait donné (j'espère ne pas faire de bêtise en rendant public ce lien) : http://forum.webrankinfo.com/rewritecond-rewriterule-t96256.html
Modérateur
Une connaissance m'a proposé une solution php...
Dans le htaccess mettre ça :
php_value auto_prepend_file "/rewrite.php"

Et dans un fichier rewrite.php ça :
if(substr($_SERVER['REQUEST_URI'],0,3) =="/?/")
{
header("Status: 301 Moved Permanently", false, 301);
header('Location: /'.substr($_SERVER['REQUEST_URI'],3));
exit;
}

Ça ne marche pas avec l'hébergement ovh de mon site (le php_value n'est pas autorisé). Mais j'ai pu réaliser la redirection en insérant dans un fichier inclus pour toutes les pages le code prévu pour le le fichier rewrite.php.

Donc affaire résolue Smiley cligne