Rediriger tout un site

  • Auteur de la discussion Auteur de la discussion kervador
  • Date de début Date de début
Nouveau WRInaute
Bonjour à tous,

Je cherche à rediriger toutes les requetes vers un site vers un sous répertoire de ce même site.

Structure sur le serveur :
/home/www/site_actuel/nouvelle_version

Actuellement le site est accessible dans le répertoire site_actuel qui est la racine du site (http://www.site_actuel.com)
Je voudrais arriver à ce que toutes les requetes vers des fichiers php du site actuel soit automatiquement renvoyées vers le sous répertoire /nouvelle_version.

en gros :
http://www.site_actuel.com/*.php* doit faire aboutir automatiquement à http://www.site_actuel.com/nouvelle_version/

J'ai mis ca dansz mon htaccess, mais ca marche pas :

Code:
RewriteEngine On
RewriteRule ^/.*\.php /nouvelle_version/

Un petit coup de main sserait le bien venu.

Petite précision sur sur un mutu (90plan) ovh.

Merci d'avance.
 
WRInaute passionné
Pour le .htaccess essaie plutôt avec une variable qui accepte tout les fichiers avec l'extension PHP, avec en prime une redirection 301 (histoire que les moteurs de recherche index les nouvelles pages avec les acquis des anciennes qui elles seront effacées) :
Code:
RewriteEngine on
RewriteRule ^(.*)\.php http://www.site_actuel.com/nouvelle_version/$1\.php[R=301,QSA,L]
Je pense en gros que c'est ce que tu as voulu faire, mais tu as omis les parenthèses qui précisent justement la variable $1 :D
 
Nouveau WRInaute
C'est effectivement ce que je cherche à faire.
Mais le code que tu proposes "boucle" l'urlrewrite.

Et le nouveau site n'a pas la meme structure que l'ancien.
Donc je dois envoyer simplement à la racine du nouveau site mais cette racine est dans l'ancien (c'est pour ca que je n'avais pas ajouté le $1)
Merci du coup de main, mais pour l'instant ca marche pas.

david96 a dit:
Pour le .htaccess essaie plutôt avec une variable qui accepte tout les fichiers avec l'extension PHP, avec en prime une redirection 301 (histoire que les moteurs de recherche index les nouvelles pages avec les acquis des anciennes qui elles seront effacées) :
Code:
RewriteEngine on
RewriteRule ^(.*)\.php http://www.site_actuel.com/nouvelle_version/$1\.php[R=301,QSA,L]
Je pense en gros que c'est ce que tu as voulu faire, mais tu as omis les parenthèses qui précisent justement la variable $1 :D
 
WRInaute discret
kervador a dit:
Donc je dois envoyer simplement à la racine du nouveau site mais cette racine est dans l'ancien (c'est pour ca que je n'avais pas

Un truc comme ça ? Ca devrait rien prendre dans les sous-réperoires

RewriteRule ^([^/]*)\.php$ http://www.site_actuel.com/nouvelle_version [R=301,L]

Sinon utilise une rewritecond (si ce n'est pas dans le répertoire, y rediriger),
RewriteCond %{REQUEST_URI} ! ^/nouvelle_version.*$
RewriteRule (.*) http://www.site_actuel.com/nouvelle_version [R=301,L]
 
WRInaute accro
sunflower a dit:
Sinon utilise une rewritecond (si ce n'est pas dans le répertoire, y rediriger),
RewriteCond %{REQUEST_URI} ! ^/nouvelle_version.*$
RewriteRule (.*) http://www.site_actuel.com/nouvelle_version [R=301,L]


Oui, mais tu dois reprendres le contenu dans le rewrite avec $1

Code:
RewriteCond %{REQUEST_URI} !^/nouvelle_version/.*
RedirectMatch (.*)\.php$   http://www.tonsite.com/nouvelle_version/$1.php [R=301]

On peut aussi l'crire comme ca :

Code:
RewriteCond %{REQUEST_URI} !^/nouvelle_version/.*
RedirectMatch (.*)   http://www.tonsite.com/nouvelle_version/$1 [R=301]
 
WRInaute accro
kervador a dit:
sunflower a dit:
kervador a dit:
Donc je dois envoyer simplement à la racine du nouveau site mais cette racine est dans l'ancien (c'est pour ca que je n'avais pas

Un truc comme ça ? Ca devrait rien prendre dans les sous-réperoires

RewriteRule ^([^/]*)\.php$ http://www.site_actuel.com/nouvelle_version [R=301,L]

Impeccable cette ligne la ;)
Un immense merci

Bonne continuation à tous

a toi aussi, juste une question, tu as 1 seul fichier dans ton repertoire nouvelle_version/

???
 
Nouveau WRInaute
Non pourquoi ?
Ce n'est pas une mise en travaux si c'est ta question.

En fait je passe d'une structure à une nouvelle. donc je ne peux pas faire correspondre les noms de fichiers.

KOogar a dit:
a toi aussi, juste une question, tu as 1 seul fichier dans ton repertoire nouvelle_version/
???
 
WRInaute accro
kervador a dit:
Non pourquoi ?
Ce n'est pas une mise en travaux si c'est ta question.

En fait je passe d'une structure à une nouvelle. donc je ne peux pas faire correspondre les noms de fichiers.

KOogar a dit:
a toi aussi, juste une question, tu as 1 seul fichier dans ton repertoire nouvelle_version/
???

Ok je comprend mieux pourquoi tu n'a pas besoin de capture dans la regex. merci pour ta reponse.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut