2010-08-19 18 views
27

Desidero reindirizzare tutta la mia vecchia richiesta di dominio al mio nuovo dominio utilizzando il file htaccess. Di seguito è riportato ciò che sto utilizzando, ma non funziona se la pagina non si trova nel nuovo sito. Ad esempio indice google about.htm sul vecchio sito ma sul nuovo sito non esiste. Mi piacerebbe solo andare alla radice in tutti i casi. So che questo non è l'ideale per seo, ma non voglio alcun 404s. Eventuali suggerimenti?htaccess reindirizza tutte le pagine alla singola pagina

Redirect 301/http://www.thenewdomain.com/ 
+1

possibile duplicato del [.htaccess 301 reindirizzamento tutte le pagine del vecchio dominio per una singola pagina sul nuovo dominio] (http://stackoverflow.com/questions/15057146/htaccess-301-redirect-all-pages-on-old-domain-to-a-single-page-on-new-domain) – mattdm

risposta

20

Stai cercando di invitare i visitatori a old.com/about.htm per andare su new.com/about.htm? Se è così, si può fare questo con una regola mod_rewrite in .htaccess:

RewriteEngine on

RewriteRule ^(.*)$ http://www.thenewdomain.com/$1 [R=permanent,L]

+0

no voglio solo old.com/about.htm per andare a old.com e quindi se possibile, rimuovi il file /about.htm in modo che vada sul vecchio.com –

+2

Basta rimuovere il '$ 1' e dovresti essere bravo! –

11

Questa dirigerà tutto dal vecchio host alla radice del nuovo ospite:

RewriteEngine on 
RewriteCond %{http_host} ^www.old.com [NC,OR] 
RewriteCond %{http_host} ^old.com [NC] 
RewriteRule ^(.*)$ http://www.thenewdomain.org/ [R=301,NC,L] 
+1

FYI: il flag [NC] sull'ultima riga è inutile. –

+0

come dire, reindirizza tutto, eccetto quelli da '/ admin'? quindi il pannello di amministrazione può essere raggiunto? –

+0

@FranciscoCorralesMorales - per fare ciò, è possibile aggiungere questa riga: RewriteCond% {REQUEST_URI}!/Admin/$ nel RewriteCond prima della riga RewriteRule. –

49

Se il tuo obiettivo è quello di reindirizzare tutte le pagine a un'unica pagina di manutenzione (come il titolo potrebbe suggerire anche questo), quindi utilizzare:

RewriteEngine on 
RewriteCond %{REQUEST_URI} !/maintenance.php$ 
RewriteCond %{REMOTE_HOST} !^000\.000\.000\.000 
RewriteRule $ /maintenance.php [R=302,L] 

Dove 000 000 000 000 deve essere sostituito dal your ip adress.

Fonte:

http://www.techiecorner.com/97/redirect-to-maintenance-page-during-upgrade-using-htaccess/

+0

come dire, reindirizza tutto, eccetto quelli da '/ admin'? quindi il pannello di amministrazione può essere raggiunto? –

+0

Questo metodo blocca tutte le risorse utilizzate nella pagina di manutenzione. Prova ad aggiungere questo dopo la seconda riga: 'RewriteCond% {REQUEST_URI}! \. (Jpe? G? | Png | gif | js | css | woff | ttf | ico) [NC]' –

3
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ [NC] 
RewriteRule ^(.*)$ "http://www.thenewdomain.com/" [R=301,L] 
Problemi correlati