.htaccess/vHost für Wildcard

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • .htaccess/vHost für Wildcard

    Hallo easy-coding-Gemeinde,

    ich habe ein kleines Problem bei der .htaccess für ein Projekt. Folgendes möchte ich realsieren. Nehmen wir an, meine Domain lautet example.com, für die ich bereits im vHost die Wildcard aktiviert habe, sprich *.example.com wird alles gecatched ("ServerAlias *.example.com"). Nun möchte ich, dass example.com und example.com im normalen Verzeichnis bleiben, bspw. /var/www/. Alle anderen *.example.com sollen allerdings in ein eigenes Verzeichnis gelenkt werden, bspw. /var/www/app, da dort ganz andere Seiten abgelegt werden sollen, als die www-Seite.

    Verwendet werden soll das ganze für Benutzeraccounts, d.h. mally.example.com/report soll /var/www/app/report.php aurufen, dass es sich um den Account "mally" handelt wird per $_SERVER['HTTP_HOST'] ausgelesen, also hier muss kein Parameter übergeben werden. Wenn ich aber example.com/report soll /var/www/report.php aufgerufen werden, da diese report.php gänzlich eine andere als die report.php im app-Unterverzeichnis ist.

    Mein Gedanke wäre eben gewesen, dass man entweder in den Rewrite-Rules definiert, dass bspw.

    RewriteEngine on
    RewriteRule ^report$ report.php

    nur für die Wildcard-Domains gelten. Allerdings weiß ich eben hier nicht, wie ich das unterbringen soll. Oder gibt es die Möglichtkeit, für ServerAlias *.example.com ein eigenes DocumentRoot zu definieren?

    Besten Dank für eure Hilfe!
  • Hi,
    es gibt natürlich verschiedene Wege...

    1) du kannst entweder mit RewriteConditions arbeiten. Allerdings gelten diese immer nur für eine Regel. Wenn du also mehr solcher "Rules" hast, dann willst du bestimmt nicht für jede Regel noch Conditions anlegen.

    2) die .htaccess wird der Reihe nach abgearbeitet. Wenn du auf HOST= example.com OR HOST=example.com prüfst, dann kannst du mit [L] dafür sorgen, dass ab dieser Stelle keine weiteren Regeln angewendet werden.

    3) Wenn du sowieso in deiner Anwendung nach Hauptdomain und Benutzer-Domain unterscheidest, dann solltest du den Report Aufruf auch in deinem Anwendungscontroller behandeln.
    Du solltest die selbe Logik nicht zum Teil in der .htaccess und zum Teil in der Anwendung haben.

    Ich bin dafür du löst das Problem über Variante 3 :)