Wie leite ich root und nur root über htaccess um?


53

Ich möchte nur meinen root auf eine andere URL umleiten, aber alle / sub / -Verzeichnisse dort behalten, wo sie hingehören (und umleiten)

Beispiel:

mysite.com/1 leitet zu irgendwo weiter mysite.com/admin öffnet eine Seite

Ich möchte, dass mysite.com/ zu mysecondsite.com umleitet und nur dies mit einer 301-Umleitung unter Verwendung von htaccess

Antworten:


75

Versuche dies:

RewriteEngine on
RewriteCond %{HTTP_HOST} mysite\.com [NC]
RewriteCond %{REQUEST_URI} ^/$
Rewriterule ^(.*)$ http://mysecondsite.com/ [L,R=301]

Wenn Sie nicht nach der alten Domain suchen müssen (wenn beispielsweise das Verzeichnis, in dem sich Ihr .htaccess befindet, nur von der alten Domain verwendet wird), können Sie die zweite Zeile entfernen.


1
In meinem Fall musste ich den Datenverkehr zu mysite.com/ umleiten, aber nicht zu foo.mysite.com. Daher musste ich Zeile 2 einen regulären Ausdruck hinzufügen: RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]um sicherzustellen, dass die Übereinstimmung für den genauen Host gilt
jaygooby 23.06.14

Es ist effizienter, den URL-Pfad im RewriteRule Muster zu überprüfen (wie in @ DaveForgacs Antwort), anstatt eine zusätzliche Bedingung zum Überprüfen der REQUEST_URIServervariablen zu verwenden.
MrWhite

38

Wenn Sie nur "/" zu einer anderen Domain umleiten möchten, funktioniert Folgendes:

RewriteEngine on
RewriteRule ^$ http://www.example.com/ [R=301,L]

Dies stimmt nur mit dem Stamm der Domäne überein, ohne dass ein Dateiname angegeben wurde. Daher wird nur der Domänenname umgeleitet, ohne dass ein Dateiname angegeben wurde.


Eine kleine Variation hat bei mir funktioniert. Nachdem alle anderen Regeln aufgerufen wurden, wollte ich nur eine Willkommensseite für alle Benutzer meiner Stammdomäne (ohne Subdomäne) erstellen: RewriteCond% {HTTP_HOST}! ^ (Subdomain1 | subdomain2) \. Mysite \ .com $ [NC] RewriteRule ^ $ /welcome.php [NC, L]
MarsAndBack

15

Dies sollte gut funktionieren:

RedirectMatch 301 ^/$ https://example.com/

2
Dies ist (gegenüber den vorhandenen Antworten) vorzuziehen, wenn Sie mod_rewrite nicht bereits für andere Weiterleitungen verwenden.
MrWhite

-3

Eine kürzere Lösung:

Redirect 301 / http://mysecondsite.com/

12
Dies wird NICHT das tun, was Jardel will. Es leitet ALLE Seiten um und nicht nur das Stammverzeichnis.
Sharoz
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.