Quelle règle de redirection utiliserais-je pour rediriger toutes les pages vers lesquelles olddomain.example
être redirigé newdomain.example
?
Le site a une structure totalement différente, donc je veux que chaque page de l'ancien domaine soit redirigée vers la nouvelle page d'index du domaine .
Je pensais que cela ferait (sous le répertoire de base olddomain.example):
RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.example/ [R=301]
Mais si je navigue vers, olddomain.example/somepage
je suis redirigé vers newdomain.example/somepage
. Je m'attends à une redirection uniquement newdomain.example
sans le suffixe de page.
Comment garder la dernière partie à l'extérieur?
.htaccess
mod-rewrite
Yuval Adam
la source
la source
RewriteEngine on
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]
* stackoverflow.com/a/7578810/1066234Réponses:
Peut être comme ça:
la source
RewriteCond %{HTTP_HOST} !^NEWDOMAIN\.com$ [NC]
?La réponse ci-dessous pourrait potentiellement provoquer une boucle de redirection infinie ...
Ici, celui-ci redirige tout après le nom de domaine sur l'URL vers la même copie exacte sur la nouvelle URL de domaine:
www.example.net/somepage.html?var=foo
redirige verswww.newdomain.com/somepage.html?var=foo
la source
Juste pour clarifier, après avoir supprimé la redirection d'hébergement qui était sur le chemin, ma solution d'origine fonctionne également:
la source
J'ai utilisé pour mon blog Wordpress cela comme .htaccess. Il convertit http: //www.blah.example/asad , http: //blah.example/asad , http: //www.blah.example2/asad etc., en http: //blah.example/asad Merci à tous d'autres réponses, j'ai compris cela.
la source
Cela a fonctionné pour moi
la source
Il existe différentes façons de procéder et diverses redirections, je les ai répertoriées ci-dessous:
Redirection 301 (permanente): pointez un site entier vers une URL différente de façon permanente. Il s'agit du type de redirection le plus courant et il est utile dans la plupart des situations. Dans cet exemple, nous redirigeons vers le domaine "example.com":
302 Redirection (temporaire): pointez un site entier vers une URL temporaire différente. Cela est utile à des fins de référencement lorsque vous avez une page de destination temporaire et que vous prévoyez de revenir à votre page de destination principale à une date ultérieure:
Redirigez index.html vers un sous-dossier spécifique:
Redirigez un ancien fichier vers un nouveau chemin de fichier:
Rediriger vers une page d'index spécifique:
la source
Redirect 301 / http://example.com/$1
alors toutes les pages du site d'origine seront redirigées vers la nouvelle racine du site$1
n'est pas requis ici, vous pensez à laRedirectMatch
directive (mais alors vous devrez quand même définir un groupe de capture pour le$1
référencer).Redirect
directives redirigent de la même manière, alors que l'OP souhaite rediriger uniquement vers la page d'accueil du nouveau site (bien que cela ne soit pas recommandé en soi). Vous devrez peut-être utiliser laRedirectMatch
directive si vous souhaitez simplement rediriger vers une URL spécifique.Si vous souhaitez rediriger depuis un emplacement vers un sous-domaine, vous pouvez utiliser:
Redirect 301 /Old-Location/ http://subdomain.yourdomain.com
la source
RewriteEngine On
lance 500 erreurs internes. C'est un espace Web très restreint. L'utilisationRedirect 301 / http://foo
est le seul moyen possible de gérer.Si le nouveau domaine vers lequel vous redirigez votre ancien site se trouve sur un hôte différent, vous pouvez simplement utiliser un
Redirect
Cela redirigera toutes les demandes de
olddomain
versnewdomain
.Redirect
La directive ne fonctionnera pas ou peut provoquer unRedirect loop
si votre nouveau domaine et votre ancien domaine sont tous deux sur le même hôte, dans ce cas, vous devrez utilisermod-rewrite
pour rediriger en fonction de l'en-tête d'hôte demandé.la source
Ma réputation ne me permet pas de commenter une réponse, mais je voulais juste souligner que la réponse la mieux notée ici contient une erreur:
devrait avoir une barre oblique avant le 1 $, donc
la source
Ma solution comme SymLinks ne fonctionnait pas sur mon serveur, j'ai donc utilisé un If dans mon PHP.
la source
Il s'agit d'un bogue dans les anciennes versions d'apache (et donc de mod_rewrite) où le préfixe du chemin était ajouté au chemin réécrit s'il était changé. Vois ici
Je pense que cela a été corrigé dans apache2 V2.2.12, il y a un drapeau spécial que vous devez utiliser que j'ajouterai ici quand je le trouverai (je pense que c'était NP pour No Path)
la source
Du point de vue de l'utilisabilité, il serait préférable que vous envoyiez également le chemin avec la demande (c'est-à-dire ce que vous avez en ce moment) et que votre nouveau site s'en occupe:
(et mieux encore, le faire automatiquement.)
C'est évidemment beaucoup de codage et d'heuristique pour un site Web plus grand, mais à mon avis, cela serait payant en termes de satisfaction des utilisateurs (lorsque votre signet soigneusement enregistré de votre produit de rêve vous conduit simplement à la première page de newdomain.com, ce est frustrant.)
la source
Si vous souhaitez que la redirection complète un nouveau site (domaine) sans paramètres ni pages, utilisez ceci:
la source
.htaccess
car il ne correspondra simplement à aucune URL dans la racine du document. Cela fonctionnerait dans une configuration de serveur ou dans un contexte VirtualHost.J'ai essayé la réponse de user968421 et la solution de l'OP mais le navigateur a fait apparaître une erreur de sécurité pour une page de paiement. Je ne peux pas vous dire pourquoi exactement.
Notre hôte (Site Ground) n'a pas pu le comprendre non plus.
La solution finale était proche, mais un léger ajustement à la réponse de user968421 (note latérale: contrairement à l'OP, j'essayais de rediriger vers la page correspondante, pas seulement vers la page d'accueil, donc j'ai conservé la référence arrière [
$1
après le domaine] de user968421's répondre):Vous avez le tweak de ce générateur de redirection htaccess recommandé par un article Host Gator (temps désespérés, mesures désespérées, bien?).
la source
Simple comme ça et cela ne portera pas la requête de fin d'URL vers un nouveau domaine.
la source
Utilisez des redirections conditionnelles avec
Options -FollowSymLinks
etAllowOverride -Options
désactivées par l'hébergeur si quelques fichiers locaux doivent également être servis:Exemple .htaccess
Cet exemple servira local index.html et redirigera tous les autres membres du personnel vers un nouveau domaine.
la source
Essayez cette méthode pour tout rediriger vers le nouveau domaine de la page d'accueil, cela fonctionne pour moi:
la source
Les réponses précédentes n'ont pas fonctionné pour moi.
J'ai utilisé ce code. Si vous utilisez OSX, assurez-vous d'utiliser le format correct.
la source