Umleitung bei nicht existierenden Objekten und Dokumenten

Fragen zum Erstellen von Templates für webEdition.
Benutzeravatar
haydi
Senior Member
Beiträge: 645
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Umleitung bei nicht existierenden Objekten und Dokumenten

Beitragvon haydi » Di 20. Mär 2018, 12:03

Holaaa,

bin verwirrt ... Nutze webEdition 7.0.4.

Objekt-SEO funktioniert. Mir geht es darum, wenn eine nicht-existente Seite oder nicht-existierende Objekt-SEO URL aufgerufen wird...

webEdition-Einstellungen:
- Fehlerseite für nicht existierende Objekte: /elemente/index.php
- unterdrücke 404 not found: false
- erzwinge ein Redirect auf Fehlerseite (404): true

Meine htaccess:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} ^/elemente/$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /webEdition/redirectSEOurls.php [L]
ErrorDocument 404 /webEdition/redirectSEOurls.php
Die Objekt-SEO URLs sollen nur innerhalb des Web-Verzeichnisses "/elemente/" greifen.

Ruft man eine nicht-existente Seite auf, so wird im Browser auf einer weißen Seite "File not found." ausgegeben.
--> Wunsch wäre: Weiterleitung auf / (=die index.php im Doc-Root)

Ruft man ein nicht-existierendes Objekt auf, so zeigt der Browser eine gänzlich weiße Seite an.
--> Wunsch wäre: Weiterleitung auf /elemente/index.php

Was mache ich denn falsch? Kann mir jemand helfen?

Liebe Grüße
Heidi
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Umleitung bei nicht existierenden Objekten und Dokumenten

Beitragvon mokraemer » Di 20. Mär 2018, 16:16

setz doch v.a. mal die 404 Seite nicht auf /webEdition/redirectSEOurls.php

Du machst ja eh schon alles per mod_rewrite und das greift ja dann auch nur auf dein Unterverzeichnis.
Mittels "erzwinge ein Redirect auf Fehlerseite (404): true" setzt du den 404er Kode, was ja sinnvoll ist, dann würde nur auch wieder "ErrorDocument 404" greifen. Du baust hier also eine schöne Schleife :-) Entweder hat deine Seite noch einen 404er oder schon einen 500er Kode.

Seit wann zeigen eigentlich die Browser keine eigenen 4xx/5xx Seiten mehr an?
webEdition-Kern-Entwickler

Benutzeravatar
haydi
Senior Member
Beiträge: 645
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Re: Umleitung bei nicht existierenden Objekten und Dokumenten

Beitragvon haydi » Di 20. Mär 2018, 16:40

Danke für die schnelle Antwort!

Wenn ich

Code: Alles auswählen

ErrorDocument 404 /webEdition/redirectSEOurls.php
nach bspw.

Code: Alles auswählen

ErrorDocument 404 /
ändere, dann funktionieren die Objekt-SEO-URLs nicht mehr.
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

Benutzeravatar
haydi
Senior Member
Beiträge: 645
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Re: Umleitung bei nicht existierenden Objekten und Dokumenten

Beitragvon haydi » Di 20. Mär 2018, 16:45

Und wenn ich statt

Code: Alles auswählen

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^/elemente/$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /webEdition/redirectSEOurls.php [L]
ErrorDocument 404 /webEdition/redirectSEOurls.php
es so ändere und nur folgendes einsetze

Code: Alles auswählen

ErrorDocument 404 /webEdition/redirectSEOurls.php
... dann bekomme ich eine weiße Seite bei nicht-existierenden Objekten bzw nicht-existierenden Seiten.
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Umleitung bei nicht existierenden Objekten und Dokumenten

Beitragvon mokraemer » Mi 21. Mär 2018, 01:24

das würde allerdings dafür sprechen das die rewriterules und das ganze mod_rewrite gar nicht funktionieren. Ich hardere auch noch mit dem "RewriteBase" - das macht in meinen Augen keinen Sinn. Lt. Doku würde er an jeden zu prüfenden Pfad erst mal RewriteBase prefixen. Ich hab das noch nie benutzt.
Ich sehe aber auch das deine primäre Condition unsinn ist ^/elemente/$ wird ja nur auf den Pfad matchen, aber auf kein Dokument darin.
Ich würde primär mal die Regel so umformulieren:

Code: Alles auswählen

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/elemente/

RewriteRule ^(.*)$ /webEdition/redirectSEOurls.php [L]
Dann kannst du erst mal keine Dateien in /elemente aufrufen, aber Seo geht. Wenn das tut, was es sollte, kannst du

Code: Alles auswählen

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
wieder reinnehmen. Wirklich effektiv wäre es natürlich, wenn du ihn für die Seo's keine Url geben würdest wo auch Pfade existieren, also, wenn /elemente wirklich nur für Seo ist und darin keine index.... liegt. Dann kann man sich die letzte Bedingung ob die Datei/Pfad existiert sparen und der Zugriff ist etwas schneller.
webEdition-Kern-Entwickler

Benutzeravatar
haydi
Senior Member
Beiträge: 645
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Re: Umleitung bei nicht existierenden Objekten und Dokumenten

Beitragvon haydi » Mi 21. Mär 2018, 10:17

Vielen lieben Dank für deine Hilfe!

Habe die Info für die htaccess übrigens von hier:
http://documentation.webedition.org/wik ... pps/tipp17
-> das scheint dann ja nicht so ganz korrekt zu sein.

Ich bin weiter. Habe einen kleinen webEdition Bug entdeckt, meine ich...

Zunächst...

Code: Alles auswählen

RewriteCond %{REQUEST_URI} ^/elemente/
... habe ich entfernt, da eine Umleitung bei nicht-existierenden Seiten oberhalb des Verzeichnisses sonst nicht mehr klappt.

Mein jetziger -finaler- htaccess-Eintrag:

Code: Alles auswählen

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /webEdition/redirectSEOurls.php [L]
</IfModule>
webEdition Einstellunge SEO-Links:
- Fehlerseite für nicht existierende Objekte: /index.php (->welche Seite auch immer man hier möchte)
- unterdrücke 404 not found: false
- erzwinge ein Redirect auf Fehlerseite (404): true

Und nun zum webEdition Bug:
Seite: /webEdition/redirectSEOurls.php
ab Zeile 146...
Es scheint mir, als würden mit der Zeile

Code: Alles auswählen

we_html_tools::setHttpCode(SUPPRESS404CODE ? 200 : 404);
bereits ein Header abgesetzt werden, weshalb der anschließende header() nicht mehr ausgeführt wird. Auf meinem Kunden-Server kommt es daher zur weißen Seite (weil offenbar die Fehlerausgabe abgeschaltet ist).
Wird diese Zeile auskommentiert, funktioniert die Umleitung. Habe die Umleitungszeile noch modifiziert, da ich nicht verstanden habe, warum eine Zuweisung zu $path gemacht wird - es folgt doch eh ein exit. Hier nun der aktualisierte Code:

Code: Alles auswählen

if(ERROR_DOCUMENT_NO_OBJECTFILE){
	//we_html_tools::setHttpCode(SUPPRESS404CODE ? 200 : 404);
	if (FORCE404REDIRECT) {
		header('Location: '.id_to_path(ERROR_DOCUMENT_NO_OBJECTFILE, FILE_TABLE));
		//header("Location: " . ($path = id_to_path(ERROR_DOCUMENT_NO_OBJECTFILE, FILE_TABLE)));
		exit;
	} else {
		include(WEBEDITION_PATH . '../' . id_to_path(ERROR_DOCUMENT_NO_OBJECTFILE, FILE_TABLE));
	}
}
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Umleitung bei nicht existierenden Objekten und Dokumenten

Beitragvon mokraemer » Mi 21. Mär 2018, 11:00

nein, Heidi, die Zeile ist völlig korrekt.
Ich schätze nur das du noch wo anders eine Behandlung für die 404er hast. Das solltest du aber ggfs. im Server log finden.
webEdition-Kern-Entwickler

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Umleitung bei nicht existierenden Objekten und Dokumenten

Beitragvon mokraemer » Mi 21. Mär 2018, 11:01

nein, Heidi, die Zeile ist völlig korrekt.
Ich schätze nur das du noch wo anders eine Behandlung für die 404er hast. Das solltest du aber ggfs. im Server log finden.
Die Condition hättest du auch drin lassen können.
webEdition-Kern-Entwickler

Benutzeravatar
haydi
Senior Member
Beiträge: 645
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Re: Umleitung bei nicht existierenden Objekten und Dokumenten

Beitragvon haydi » Mi 21. Mär 2018, 11:27

Oh, dachte, es handle sich um einen Bug. Okay.
Dann ist das wohl eine spezielle Geschichte auf diesem speziellen Server; wäre durchaus denkbar. Denn er ist etwas speziell.
Muss es nun so lassen und bei einem Update von webEdition daran denken, die Datei wieder zu ändern.
Vielen Dank nochmal!!!
Werde dir ein Bier spendieren in Aschaffenburg!
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 16 Gäste