2016-06-11 23 views
1

Ich beginne einen Blog auf einer Domain, die ich gerade gekauft habe und möchte ein anderes Blog als Subdomain einrichten.URL Umleitung über HTACCESS

Nun, wenn dieser sekundäre Blog startet, und ich hoffe, dass es in naher Zukunft tut, würde ich es gerne auf einer eigenen Domäne einrichten, aber ich frage mich, wie einfach es ist, Leute umzuleiten habe die existierende URL zu der neuen.

Ich habe eine Ordnerstruktur wie folgt:

domain.com >>> htaccess . index.php . about.php . blog/ . features/ 

Meiner Blog und Features Ordner enthalten auch eine htaccess Datei und ihre eigene index Seite + andere relevante PHP-Seiten.

Ich frage mich, ob Sie Leute auf die neue Domäne mit nur der primären htaccess Datei, die unter dem Hauptordner domain.com befindet, oder wenn Sie die Htaccess in jedem Unterordner bearbeiten müssten.

Was wäre der beste Weg, um dies zu tun, und in gewissem Maße, wie würde dies erfolgreich gemacht werden?

+0

'RewriteRule^http zu gehen versucht: //new-domain.com% {REQUEST_URI} [R, L]' Das ist es – hjpotter92

+0

Und das geht in den ** primären ** htaccess? Bedeutung Ich wäre in der Lage, alle anderen Dateien und Ordner zu löschen und nur einen 'htaccess' in der Subdomain zu haben? –

+0

Ja! Das ist alles. – hjpotter92

Antwort

1

Ja, alles, was Sie brauchen würde, ist zu tun, verwenden Sie die folgenden Schritte aus:

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule (.*) http://www.newblog.com/$1 [R=301,L] 

Also, wenn jemand die alte Domain zugreift, es auf die neue lenken würde.

+0

sei vorsichtig. Mit dieser Regel wird alles umgeleitet, einschließlich der Anfragen für Ihr Hauptblog. Sie möchten nur Anfragen an Ihre Subdomain umleiten. Dazu brauchen Sie eine Umschreibungsbedingung (Umleitung nur, wenn eine Bedingung erfüllt ist). Siehe meine Antwort – BeetleJuice

0

Sobald Sie Ihre Sub-Domain sub.mydomain.com zu newdomain.com bewegen, können Sie .htaccess mod_rewrite Modul zu umleiten Abfragen aus der Sub-Domain auf die neue Domain verwenden. Sie würden die Regeln in die htaccess-Datei auf oberster Ebene setzen, die die alte Domain steuert. Mit dem obigen Beispiel Domänen, wäre es so etwas wie:

Options +FollowSymLinks 
# turn on mod_rewrite 
RewriteEngine On 
RewriteBase/

# only redirect if query is for the sub domain (non case-sensitive match) 
RewriteCond %{HTTP_HOST} ^sub\.mydomain\.com$ [NC] 

# rewrite all urls (that match the subdomain host) to new domain, 
# be sure to include the original path and query string 
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [QSA,L,R=301] 

Wenn Ihre neue Domain nicht www Präfix nicht verwendet, entfernen Sie einfach die von der Rewrite-Regel. QSA weist den Server an, die Abfragezeichenfolge (Teil der URL nach dem Zeichen ?) zu senden. L bedeutet, die Verarbeitung des htaccess-Dokuments zu stoppen. R=301 bedeutet den Browser zu sagen, dass es fortan direkt an newdomain.com gehen können, wenn der Benutzer zu sub.mydomain.com

+0

Also damit, wenn ein Benutzer sagt 'http://old-domain.com/features/interviews/1111/an-interview "Mit einem Band" werden sie automatisch auf "http: // new-domain.com/features/interviews/1111/ein Interview mit einer Band" umgeleitet? –

+0

Nicht genau. Du hast im OP gesagt, dass du nur das sekundäre Blog von der Subdomain auf die neue Site umleiten willst (ohne das Hauptblog von der Basisdomain umzuleiten) oder?Ein Benutzer, der zu "old_domain.com" geht, würde nicht umgeleitet werden (sie würde die Bedingung "RewriteCond" nicht erfüllen, aber ein Benutzer, der zu "subdomain.old_domain.com" geht, würde umgeleitet werden. Außerdem die obige Regel Im Gegensatz zu Thickgurus Antwort würde die Query-Zeichenkette erhalten bleiben. "subdomain.olddomain.com/path? post = 123" sollte zu "newdomain.com/path? post = 123" umgeleitet werden. Deshalb habe ich das 'QSA'-Flag nach dem Regel – BeetleJuice

+0

Sie müssen nicht die QSA hier.QSA ist hilfreich, wenn der Zielpfad auch eine Abfrage Zeichenfolge enthält dann kombiniert sie – starkeen