Ich nehme alle Subdomains an der gleichen Stelle wie die Haupt-Domain verweisen, so subdomain.example.com
und example.com
Punkt an der gleichen Stelle.
Versuche so etwas wie die folgend in der .htaccess
-Datei im Stammverzeichnis der Haupt-Website:
RewriteEngine On
# Exclude requests for the www subdomain
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule^- [L]
# Requests for the site root
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com [NC]
RewriteRule ^$ sites/%1/index.php [L]
# Requests that are "assumed" to be .php files
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com [NC]
RewriteRule ^([^.]*)$ sites/%1/$1.php [L]
# All other requests
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com [NC]
RewriteRule !^sites/ sites/%1%{REQUEST_URI} [L]
Dies setzt voraus, dass ein gültiger URL-Pfad keinen Punkt enthält.
%1
ist ein Rückverweis auf die erfassten Gruppe im CondPattern (dh. Die Subdomäne) und $1
ist ein Rückverweis auf die erfassten Gruppe im RewriteRule
Muster.
Wie möchten Sie jedoch mit Nicht-PHP-Dateien und anderen statischen Ressourcen umgehen?
Auch, wie kann ich tun, um eine 404-Seite?
Sie können ein benutzerdefiniertes Fehlerdokument definieren. Zum Beispiel:
ErrorDocument 404 /errors/404.php
Allerdings müssen Sie eine Ausnahme an der Spitze Ihrer .htaccess
Datei, um dies zu verhindern, dass durch die Richtlinien neu geschrieben werden, die folgen. Zum Beispiel:
RewriteRule ^errors/ - [L]
Werden keine Subdomänen vom Domain-Registrar behandelt? –