it-swarm.com.de

301 Leiten Sie eine Domain zu einer anderen Domain um, ohne die Unterverzeichnisse zu verändern

Ist es möglich, eine Top-Domain (http://x.com) (DNS/.htaccess/else?) Zu konfigurieren, um zu einer anderen Domain (http://y.com) umzuleiten, während Sie beim Navigieren zu http://x.com/subdir/index.html Sehen Sie die Dateien im Unterverzeichnis von http://x.com?

zusammengefasst
wie man:
x.com -> y.com (Weiterleitung)
x.com/sub/index.html -> x.com/sub/index.html (keine Weiterleitung)

Fall verwenden
Ich habe sanderschaeffer.nl und iscs.nl, die beide meine Firmennamen sind. Einer ist mein persönlicher Name, der andere mein Markenname. Wenn ein Benutzer zu sanderschaeffer.nl navigiert, sollte die Domäne zu iscs.nl weiterleiten (301). Wenn man jedoch sanderschaeffer.nl/clientTestSite/ eingibt (d. H.), Bleibt es an dieser Stelle. Daher erhält nur die oberste Ebene eine 301-Umleitung, aber die Eingabe der obersten Domäne einschließlich eines Unterverzeichnisses führt zu KEINER Umleitung.

Zum einen: 'Warum verwenden Sie die Test-Sites nicht in einem Unterverzeichnis auf der Haupt-Site (iscs.nl/)?'; Das liegt daran, dass ich (vorübergehend) einen neuen Server teste, auf dem sanderschaeffer.nl derzeit gehostet wird. :)

3

Angenommen, Sie meinen "Unterverzeichnis" und nicht "Unterdomäne" (gemäß Ihren Beispielen), dann versuchen Sie Folgendes in der .htaccess-Datei unter x.com:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/sub/
RewriteRule (.*) http://y.com/$1 [R=301,L]

Leiten Sie (301) alles zu y.com um, wobei der URI startet nicht mit /sub/.

Beachten Sie, dass dies zu der entsprechenden URL bei y.com umleitet, so leitet beispielsweise http://x.com/foo/bar zu http://y.com/foo/bar um. (Anstatt buchstäblich nur x.com/ zu y.com/ umzuleiten?)

PDATE # 1: In Anbetracht der folgenden Kommentare kann Folgendes ausreichen. Dadurch wird http://x.com/ (und nur die Stamm-URL) zu y.com umgeleitet. Sonst noch was zB. x.com/something bleibt bei x.com.

RewriteEngine On
RewriteRule ^$ http://y.com/ [R=301,L]

Beachten Sie jedoch, dass dies nicht speziell nach einem gültigen Unterverzeichnis sucht. Jede Pfadkomponente in der URL führt dazu, dass die URL bei x.com bleibt.

Wenn Sie speziell nach gültigen/bekannten Unterverzeichnissen suchen müssen, würde ich eine RewriteCond -Direktive wie im obigen ersten Beispiel verwenden.

PDATE # 2: Eine andere Möglichkeit besteht darin, zu prüfen, ob wie ein Unterverzeichnis aussieht, d. H. /anything/ und ansonsten umleiten. Zum Beispiel:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/[a-z0-9_-]+/
RewriteRule (.*) http://y.com/$1 [R=301,L]

Dies leitet x.com/ zu y.com/ und x.com/file zu y.com/file weiter, leitet jedoch x.com/subdir/file.php nicht weiter.

4
MrWhite