Jump to content

.htaccess et pages anciennes en php


Melkior

Recommended Posts

Bonjour,

 

Un site avait des pages en php.

Suite à une refonte, toutes les pages sont en html

 

Pas de souci pour rediriger les pages du style : /mapage.php

avec:

 

redirect 301 "/mapage.php" https://www.monsite.fr

Mais les directions ne prennent pas pour des pages comme /mapage?id=10"

En effet

redirect 301 "/mapage?id=10" https://www.monsite.fr

Ne fonctionne pas.

Y a t-il une solution ?

Merci

 

 

PS ... Quand je clique sur l'adresse de la page Voilà ce qui est indiqué sur la page

Citation

Not Found

The requested URL /mapage.php was not found on this server.

 

Edited by Melkior
Link to post
Share on other sites

Bonjour,

 

On ne rajoute JAMAIS le QUERY_STRING dans le premier terme d'une redirection.

 

Essaie

redirect 301 /mapage https://www.monsite.fr

Si ton id=10 doit être traité il faut utiliser RewriteCond et RewriteRule au lieu de redirect !

 

Mais je ne suis pas certain de ton exemple mapage?id=10 .... tu ne voulais pas écrire mapage.php?id=10 plutôt ?

 

Link to post
Share on other sites

Merci pour la réponse.

 

La page est bien

  https://www.monsite.fr/mapage?id=10

J'ai modifié avec

RewriteEngine On

RewriteCond %{HTTP_HOST} ^monsite.fr$
RewriteRule ^(.*) https://www.monsite.fr/$1 [R=301,L] 

RewriteRule ^index\.html$  / [R=301,L]


RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]


redirect 301 /mapage https://www.monsite.fr

Maintenant j'ai une redirection quand je mets l'ancienne adresse mais cela me dirige à l'écran vers la page d'accueil mais dans la barre d'adresse j'ai:

https://www.monsite.fr/?id=10

Il doit y avoir une erreur car il faut arriver à la page https;//www.monsite.fr sans ?id=10

J'ai pas trop saisie ce que tu as dit => il faut utiliser RewriteCond et RewriteRule au lieu de redirect

C'est pour cela que j'ai mis l'htaccess complet

 

Edited by Melkior
Link to post
Share on other sites

A la place de ta ligne redirect il faut utiliser ceci :

RewriteRule mapage https://www.monsite.fr/? [R=301,L]

Le ? en fin du second argument évite l'ajout du QUERY_STRING

Link to post
Share on other sites

La redirection fonctionne correctement.

 

Un grand merci d'avoir partagé tes connaissances.

C'est très gentil.

Bon week-end.

Edited by Melkior
Link to post
Share on other sites

Pas de quoi  ;)

 

Je précise tout de même que si tu rediriges toutes tes pages à la racine du nouveau site, tu risques une pénalité pour "duplicate content"

 

Link to post
Share on other sites

Ce sont des anciennes pages qui n'ont aucun contenu. J'aurais pu les laisser tel quel, mais elles ont des backlinks. La redirection sert à récupérer le "jus".

Quand tu de duplicate content, tu veux dire par exemple que le site est accessible sous differente url.

Par exemple :

http://www.monsite.fr
http://www.monsite.fr/index.html

 

Edited by Melkior
Link to post
Share on other sites
  • 4 months later...

Bonjour,

 

Existe-il une astuce de redirection quand on clic sur un lien sur une page d'un partenaire quelconque et qu'il nous renvoie vers :

 

h**s://www.monsite.com/?page=information et que cette page n'existe pas sur mon site ( site non dynamique)

 

J'ai essayé des redirections diverses et je n'arrive pas à rediriger cette page vers la home du site.

 

Merci

 

Link to post
Share on other sites

Tout simplement comme ceci :

RewriteCond "%{QUERY_STRING}"  "page=information"
RewriteRule ".*" "https://www.tonsite.com/?"  [R=301,L]

Le ? de la règle de réécriture est indispensable si tu ne veux pas que le QUERY_STRING soit accolé à l'URL !

 

Link to post
Share on other sites
  • 10 months later...

Bonjour,

 

Ce post est ma bible pour les redirection .htaccess :)

J'y reviens régulièrement.

 

Par contre je coince sur une redirection de pages php sans query pour un répertoire /dotclear/

 

Je veux rediriger toutes les pages du répertoire /dotclear/ vers l'index.

Les pages à rediriger se présentent sous cette forme => h***://www.monsite.fr/dotclear/index.php?pages/riri-fifi

 

Ayant mis

redirect 301 "/dotclear/" https://www.monsite.fr

Quand je clique sur l'url à rediriger cela me renvoie à l'affichage de la page index dans mon navigateur mais avec comme adresse :  h***://www.monsite.fr/?pages/riri-fifi

 

Merci pour l'aide.

Link to post
Share on other sites

Comme ceci peut-être ?

redirect 301 "/dotclear/" https://www.monsite.fr/?

 

Je sais par expérience que l'ajout de ? en fin de réécriture  permet d'éviter la transmission du QUERY_STRING dans une RewriteRule.

Je ne sais pas si c'est pareil avec un Redirect.

 

 

Link to post
Share on other sites

Manifestement cela ne fonctionne pas avec mod_alias qui inclut d'office le ?

 

Mais sinon, ceci devrait fonctionner :

RewriteEngine on
RewriteRule /?dotclear/  https://www.monsite.fr/? [R=301,L]

 

ou encore, en utilisant le flag QSD d'apache (version 2.4 ou ultérieure) :

RewriteEngine on
RewriteRule /?dotclear/  https://www.monsite.fr/ [R=301,L,QSD]

QSD signifie Query String Discard   ;)

 

Link to post
Share on other sites

Un grand merci Dan. La 2em solution fonctionne.

Par contre je suis surpris, après avoir mis le bout de code et nettoyé le cache du navigateur firefox. Je suis revenu sur l'url pour laquelle je coinçais et bizarrement elle me renvoyait toujours à  : h***://www.monsite.fr/?pages/riri-fifi

Mais comme j'avais d'autres pages à rediriger du même style, j'ai essayé et là miracle sur les autres no problem.

 

Link to post
Share on other sites

J'ai déjà vécu cela, surtout avec des versions récentes : le cache de Firefox ne se vide pas totalement !

Dans ce cas je vide le cache,  arrête complètement Firefox et le relance. Et là ça passe !

 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...