it-swarm.com.de

.htaccess leitet den Aliasnamen des Domainnamens an die Hauptdomäne weiter, muss jedoch als Aliasdomäne angezeigt werden

Ich habe Folgendes in einer .htaccess-Datei:

RewriteCond %{HTTP_Host} ^www\.aliasdomain\.com$ [OR]
RewriteCond %{HTTP_Host} ^aliasdomain\.com$
RewriteRule ^(.*)$ http://www.maindomain.com/subdir1/subdir2/index.html [R]

In einem Browser möchte ich, dass aliasdomain.com auf die index.html -Datei zugreift und als aliasdomain.com angezeigt wird.

Es wird jedoch wie folgt als vollständige URL angezeigt: http://www.maindomain.com/subdir1/subdir2/index.html

3
Michael

Sie müssen intern neu schreiben die Anfrage, um aliasdomain.com im Browser zu behalten, und nicht extern umleiten wie Sie es gerade tun ...

Entfernen Sie das Protokoll/den Host aus der Ersetzung RewriteRule, um nur einen root-relativen Pfad zu belassen, und entfernen Sie das Flag R (Weiterleitung). Das Protokoll/Host in der Substitution erzwingt eine externe Umleitung.

RewriteCond %{HTTP_Host} ^(www\.)?aliasdomain\.com$
RewriteRule ^$ /subdir1/subdir2/index.html [L]

Das Muster ^$ in der Direktive RewriteRule stellt sicher, dass nur Anforderungen für den Domänenstamm (dh http://aliasdomain.com/ oder http://www.aliasdomain.com/) in die neue URL anstatt in http://aliasdomain.com/every/possible/url (wie in den Kommentaren unten erwähnt) umgeschrieben werden.

Da aliasdomain.com ein Domain-Alias von maindomain.com ist, kann über beide Domains auf die gesamte Site zugegriffen werden. Sie zeigen auf den gleichen Ort. Davon hängen die oben genannten Umschreiberegeln ab. Sie können nicht intern auf einen anderen Host schreiben. Das obige RewriteRule bedient also die Datei von aliasdomain.com.

1
MrWhite