Sehr viele 301 Redirect Weiterleitungen einrichten?

2 Antworten

Du kannst dir serverseitig dein eigenes Redirect-Script coden. In der Sprache die dein Webserver verwendet (z.B. PHP).

Da kannst du dann im Hintergrund beispielsweise eine Datenbank oder soetwas verwenden.


sinuss 
Fragesteller
 11.11.2023, 15:12

hättest du ein grobes Beispiel dafür? ggf. wo man etwas zu dem Thema nachlesen kann?

0
Destranix  11.11.2023, 15:15
@sinuss

Du sendest von deinem Server aus als Antwort die passenden Header und beendest die Sitzung dann oder gibst etwas passendes aus.

Beispiel:

header("HTTP/1.1 301 Moved Permanently");
            $url = "https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
            $queryPos = strpos($url, "?");
            if($queryPos === FALSE){
                $anchorPos = strpos($url, "#");
                if($anchorPos === FALSE){
                    $url .= "?redirected=true";
                }else{
                    $url = substr($url, 0, $anchorPos)."?redirected=true".substr($url, $anchorPos);
                }
            }else{
                $url = substr($url, 0, $queryPos+1)."redirected=true&".substr($url, $queryPos+1);
            }
            header("Location: ".$url);
            exit();

(Das redirected glaube ich zu HTTPS.)

1
sinuss 
Fragesteller
 11.11.2023, 16:07
@Destranix

ah cool anke, aber ja dann wird ja auch bei jeden Aufruf die vielen redirects geladen.
vhost hat halt den vorteil vom caching :/
Aber danke Dir wir werden es mal genauer prüfen.

1
Destranix  11.11.2023, 16:08
@sinuss

Du kannst die Redirects aus einer Datenbank oder anderen Datenstruktur dynamisch laden. Musst du halt entsprechend coden.

1
sinuss 
Fragesteller
 11.11.2023, 16:15
@Destranix

Allg. geht es ja darum, dass man nicht immer alles zum Apache schickt, sondern wie du schreibst über ggf. php/datenbank die "berechnungen" macht. richtig?

0
Destranix  11.11.2023, 16:18
@sinuss

Das man sich halt eine Redirect-Tabelle erstellt und da nur den passenden Eintrag rauslädt den man gerade braucht.

Da kann man auch einen Cache oder soetwas zu implementieren sicherlich irgendwie. (Wahrscheinlich kann eine passend konfigurierte Datenbank einerseits schnellen Zugriff erlauben, andererseits gegebenenfalls auch Caching betreiben.)

Du erhälst vom Nutzer die Eingabe-URL, machst einen Query in der Datenbank (mittels vorindizierten und voroptimiertem Query) und du bekommst die Ziel-URL zurück, die du dann verwendest wie oben in dem Code-Beispiel (Header senden, dann Location setzen, dann exit).

1

Wofür brauchst du so viele Redirects? Das hört sich eher an als solltest du Weiterleitungsregeln nutzen bzw. den Webserver ordentlich konfigurieren. Ich kenne keinen sinnvollen Anwendungsfall der so viele manuelle Redirects braucht. Vielleicht solltest du mal das Problem bzw. Ziel beschreiben und nicht deine vermutete Lösung.