it-swarm.com.de

.htaccess Subdomain in Verzeichnis umschreiben

Ist es möglich, mit .htaccess eine Unterdomäne in ein Verzeichnis zu schreiben?

Beispiel:

zeigt den Inhalt von

78
Erik Djupvik

Fügen Sie dies in Ihre .htaccess-Datei ein:

RewriteEngine on
RewriteCond %{HTTP_Host} ^sub.domain.com
RewriteRule ^(.*)$ http://domain.com/subdomains/sub/$1 [L,NC,QSA]

Für eine allgemeinere Regel (die mit jeder Unterdomäne funktioniert, nicht nur mit sub) ersetzen Sie die letzten beiden Zeilen durch diese:

RewriteEngine on
RewriteCond %{HTTP_Host} ^(.*)\.domain\.com
RewriteRule ^(.*)$ http://domain.com/subdomains/%1/$1 [L,NC,QSA]
98
Ansari

Ich bin kein Mod_rewrite-Experte, ich habe oft damit zu kämpfen, aber ich habe dies auf einer meiner Websites getan. Je nach Ihren Umständen sind möglicherweise andere Flags usw. erforderlich. Ich benutze das:

RewriteEngine on

RewriteCond %{HTTP_Host} ^subdomain\.example\.com$
RewriteCond %{REQUEST_URI} !^/subdomains/subdomain
RewriteRule ^(.*)$ /subdomains/subdomain/$1 [L] 

Alle anderen Umschreiberegeln für den Rest der Site müssen nachträglich angewendet werden, um zu verhindern, dass sie Ihre Umschreibungen in der Subdomain beeinträchtigen.

48
Lee Kowalkowski

Sie können die folgende Regel in htaccess verwenden, um die Unterdomäne in einen Unterordner umzuschreiben:

RewriteEngine On

 #If the Host is "sub.domain.com"
 RewriteCond %{HTTP_Host} ^sub.domain.com$ [NC]
 #Then rewrite any request to /folder
 RewriteRule ^((?!folder).*)$ /folder/$1 [NC,L]

Zeile für Zeile Erklärung:

  RewriteEngine on

Die obige Zeile weist den Server an, die Engine zum Umschreiben von URLs einzuschalten.

  RewriteCond %{HTTP_Host} ^sub.domain.com$ [NC]

Diese Zeile ist eine Bedingung für die RewriteRule, bei der wir mit dem http-Host unter Verwendung eines Regex-Musters übereinstimmen. Die Bedingung besagt, dass wenn der Host sub.domain.com ist, die Regel ausgeführt wird.

 RewriteRule ^((?!folder).*)$ /folder/$1 [NC,L]

Die Regel entspricht http://domain.com/foo und leitet sie intern zu http://domain.com/folder/foo weiter.

Ersetzen Sie sub.domain.com durch Ihre Subdomain und den Ordner mit dem Namen des Ordners, auf den Sie Ihre Subdomain verweisen möchten.

15
starkeen

Ich hatte das gleiche Problem und fand eine ausführliche Erklärung in http://www.webmasterworld.com/Apache/3163397.htm

Meine Lösung (der Inhalt der Subdomains sollte sich in einem Ordner mit dem Namen sd_subdomain Befinden):

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_Host} !^www\.
RewriteCond %{HTTP_Host} subdomain\.domain\.com
RewriteCond $1 !^sd_
RewriteRule (.*) /sd_subdomain/$1 [L]
8

leitet in denselben Ordner zur Subdomain um: .htaccess

RewriteCond %{HTTP_Host} !^www\.
RewriteCond %{HTTP_Host} ^([^\.]+)\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain\.com/subdomains/%1
4
jmsmarcelo

Versuchen Sie, diese .htaccess-Datei in den Unterdomänenordner zu kopieren:

RewriteEngine On

RewriteRule ^(.*)?$ ./subdomains/sub/$1

Es leitet zu http://domain.com/subdomains/sub/ weiter, wenn nur http://domain.com/ angezeigt werden soll

3
Minh Trịnh

Subdomain-Verzeichnis umleiten:

RewriteCond %{HTTP_Host} ^([^.]+)\.(archive\.example\.com)$ [NC]
RewriteRule ^ http://%2/%1%{REQUEST_URI} [L,R=301]
2
Mayank Awasthi

Verwenden Sie für jede Subdomain-Anfrage Folgendes:

RewriteEngine on 
RewriteCond %{HTTP_Host} !^www\.band\.s\.co 
RewriteCond %{HTTP_Host} ^(.*)\.band\.s\.co 
RewriteCond %{REQUEST_URI} !^/([a-zA-Z0-9-z\-]+) 
RewriteRule ^(.*)$ /%1/$1 [L] 

Stellen Sie einfach einen Ordner auf den Namen der gewünschten Subdomain. Der Ordner muss folgendermaßen vorhanden sein: domain.com/sub für sub.domain.com.

0
Hafij Khan