-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rex_yrewrite::getDomainByName() findet Domain nicht #556
Comments
Was willst du denn mit dem Anlegen der 4 Varianten erreichen? Der einzige Unterschied ist, wie das im Nachhinein mit dem Protokoll weiter geht. |
Genau das ist ja das Problem. Damit kann man nicht wirklich sicher über den Domainnamen prüfen, da man u.U. nicht weiß, wie die Domain angelegt wurde damit die Prüfung erfolgreich ist. |
Ich vermute was du suchst, ist das hier
Falls es das nicht ist, könntest du mehr Kontext liefern? Ich verstehe noch nicht ganz dein Problem. |
rex_yrewrite::getCurrentDomain() ist es nicht. Das liefert nicht die korrekte Domain, da es nur eine Domain aus seiner definierten Liste liefert, aber nicht die tatsächlich aktuell genutzte Domain. |
Die aktuelle Domain lese ich mit SERVER_NAME aus. Soweit klar. Dabei kann es schnell passieren, dass die Schreibweise zum gegenprüfen (getDomainByName()) nicht stimmt, da diese Funktion lediglich den in der DB befindlichen (angelegten) Namen zur Prüfung heranzieht. Lässt man sich zusätzlich noch das YRewrite-Domain-Objekt ausgeben, dann steht da aber immer der reine Domainname drin. Bsp: |
|
Ist das denn ein praktisches oder ein theoretisches Problem? D.h. wie wahrscheinlich is es, dass jemand auf die Idee kommt, sechs Varianten der gleichen Domain mit unterschiedlichen Attributen anzulegen? Technisch ist es ja so, dass die Datenbank-Einträge von Yrewrite normalisiert und im Ordner redaxo/cache gespeichert werden. D.h. Slashes werden aus dem Domainnamen entfernt und das Protokoll extrahiert. Von dort werden sie in ein Array mit dem normalisierten Domainnamen als Key eingelesen. D.h., dass Yrewrite immer mit dem letzten Eintrag zur jeweiligen Domain arbeitet, die übrigen werden jeweils vom Folgeeintrag überschrieben. |
@DanielWeitenauer Ist ein praktisches Problem, wenn mehrere Personen daran arbeiten und einer nicht aufpasst beim Anlegen. Ich habe es getestet, da ich aktuell ein Projekt habe, wo ich mit SERVER_NAME gegenprüfen will. |
@tbaddade Das klappt eben bei mir nicht, wenn die Domain mit https in YRewrite angelegt wurde. |
Dies scheint ein Missverständnis zu sein. Du kannst zwar verschiedene Datenbankeinträge mit und ohne https etc. für eine Domain anlegen, jedoch werden sie von Yrewrite intern alle als die gleiche Domain behandelt. Daher ist Yrewrite jeweils nur der letzte Eintrag bekannt. Hast du mal mit |
Meine Antwort von oben:
Du musst Hast du schon mal |
getDomainByName() findet die korrekte Domain nicht, wenn ein und dieselbe Domain in verschiedenen Varianten angelegt wurde.
"domain.de"
"https://domain.de"
"domain.de/"
"https://domain.de/"
...
Zusätzlich problematisch ist dabei, dass im Domainobjekt als Name bei allen 3 Varianten immer nur "domain.de" steht.
Man kann daher z.B. hiermit
getDomainByName($_SERVER['SERVER_NAME'])
nicht auf das korrekte Domainobjekt zugreifen, wenn die Domain mit https oder / angelegt wurde.Lt. Anleitung ist "https" und "/" optional, was es aber anscheinend doch nicht ist, da alle 3 Varianten unterschiedliche Domains für YRewrite sind. Praktisch sind es aber alle die gleiche Domain, da https und der / nicht zur eigentlichen Domain gehören.
The text was updated successfully, but these errors were encountered: