2016-09-19 2 views
0

Ist es möglich, .htaccess für eine Subdomain zu verwenden, um auf eine Datei in der Hauptdomain zu zeigen? Ich habe example.com als Hauptdomain und erstellt Subdomains: one.example.com, two.example.com usw. über DirectAdmin. Die Subdomains sollten auf app.php in der Hauptdomain zeigen, aber in der URL sollte die Subdomain bestehen bleiben.Rewrite-Regel für Subdomänen

So zu navigieren one.example.com sollte, die in der Haupt-Domain example.com lebt app.php werden zeigen, aber die URL sollte noch zeigen one.example.com

Ich habe geschaut und versucht, eine Viele der Rewrite-Regeln finden Sie unter .htaccess rewrite subdomain to directory und anderswo. Zur Zeit habe ich diese Rewrite-Regel in einer .htaccess Datei im Unterordner der Subdomain:

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(.*)\.example\.com 
RewriteRule ^(.*)$ http://example.com/app.php$1 [L,NC,QSA] 

Diese umleitet und ändert die URL example.com/app.php, während ich die URL möchte die Sub-Domain zeigen, : one.example.com/whatever

Ist es möglich, dies mit .htaccess zu tun, oder gibt es vielleicht sogar einen besseren Weg, dies zu tun?

Antwort

0

A RewriteRule mit einem Ziel auf einem anderen Server tut immer einer Umleitung

Absolute URL
Wenn eine absolute URL angegeben wird, mod_rewrite überprüft, ob der Hostname die aktuellen Host übereinstimmt. Wenn dies der Fall ist, werden das Schema und der Hostname entfernt und der resultierende Pfad wird als URL-Pfad behandelt. Andernfalls wird eine externe Weiterleitung für die angegebene URL durchgeführt. Um eine externe Weiterleitung zurück zum aktuellen Host zu erzwingen, siehe das [R] -Flag unten.


Um ohne Umleiten der URL http://example.com/app.php in Ihrer Subdomains Karte, können Sie die P|proxy Flagge Geist die letzte Note in halten versuchen könnte

RewriteRule ^(.*)$ http://example.com/app.php/$1 [P,QSA] 

Auch

Hinweis: mod_proxy muss aktiviert sein, um dieses Flag zu verwenden.

Normalerweise kann dies durch

a2enmod proxy proxy_http 

erfolgen, wenn die Ziel-URL https://... ist, müssen Sie auch mod_proxy_connect aktivieren, und aktivieren Sie SSL in der Haupt- oder virtuellen Host Config mit SSLProxyEngine

SSLProxyEngine on 

Je nach Ihren Anforderungen könnte ProxyPass auch eine praktikable Lösung sein.

+0

Ich habe Ihren Vorschlag versucht, aber es funktioniert nicht, die URL wird immer noch auf die Hauptdomain umgeleitet. Ich habe die Anwendung auf example.com ausgeführt und möchte es auf Subdomains mit URL wie one.example.com usw. ausführen. – zef

+0

Ich habe dies in meiner Testumgebung versucht, und es funktioniert. Siehe aktualisierte Antwort. –

+0

Ich benutze tatsächlich https: // ...Allerdings habe ich meine Subdomains in Domain Pointer geändert und somit als Alias ​​fungiert. Dies funktioniert jetzt für mich, ohne dass URLs neu geschrieben werden müssen. Ich denke, das ist ein besserer und einfacherer Weg. – zef

Verwandte Themen