it-swarm.com.de

XAMPP-Alias ​​oder umschreiben?

Ich habe eine Site, die auf W2012 mit XAMPP läuft. Ich habe eine Live-Site, die sich im Unterordner/foo befand. Es muss jetzt zu/home geändert werden.

I set up an alias 

Alias /foo "C:/xampp/htdocs/home"

Dies führt Benutzer von foo -> home ... jedoch verlieren sie die Seite, die sie besuchen wollten. Das Problem ist, dass viele Seiten auf foo privat zur Verfügung gestellt wurden. Wir erwarten daher, dass Benutzer verstehen, dass sie ihre Seite in die neue URL kopieren müssen. Ich brauche einen Benutzer, der zu foo/client-demo geht, um automatisch zu home/client-demo zu gelangen.

Ergänzung: Gestern habe ich eine Umleitung eingerichtet.

Redirect foo/client-demo home/client-demo

Das funktioniert. Dann dachte ich, dass der Grund, warum der Alias ​​nicht funktioniert, mein SSO ist. Ich habe ein SSO-SAML-Anmeldeskript, das den Benutzer auf seine Einstiegsseite umleitet. Wenn der Benutzer also mit foo/xyz beginnt, werden sie vom Alias ​​zu home/xyz (möglicherweise auf dem xyz) geleitet. Anschließend wird das Anmeldeskript aufgerufen und es wird wieder auf die Empfehlungsseite verwiesen.

2
blankip

... aber sie verlieren die Seite, die sie besuchen wollten.

Ich bin mir nicht sicher, was Sie damit meinen - sie sollten nichts "verlieren"? Die URL in der Adressleiste wird jedoch nicht aktualisiert. Ein Apache Alias konvertiert eine URL in einen serverseitigen Dateisystempfad (normalerweise, um den Zugriff auf Dateien außerhalb des Dokumentenstamms zu ermöglichen) - er manipuliert die URL nicht.

Es hört sich so an, als ob Sie eine externe Umleitung wünschen (301 - permanent). Zum Beispiel mit mod_alias (Prefix Matching):

Redirect 301 /foo /home

Dies setzt voraus, dass Sie mod_rewrite nicht bereits zum Verarbeiten von Weiterleitungen/Umschreibungen verwenden (z. B. mit WordPress). Wenn Sie für diesen Zweck bereits mod_rewrite verwenden, müssen Sie auch mod_rewrite für diese Umleitung verwenden, da die Ausführungsreihenfolge möglicherweise nicht den Erwartungen entspricht. Zum Beispiel:

RewriteRule ^/?foo(.*) /home$1 [R=301,L]
1
DocRoot