Seite 1 von 1

404 Weiterleitung funktioniert nicht

Verfasst: 21.09.2017, 20:10
von Riggi29
Hallo zusammen,

ich kenne mich mit rewrite rules in der .htaccess Datei nicht wirklich aus. Ich habe mir ein paar Codeschnipsel im Netz zusammen gesucht und und an meine Domain angepasst. Funktioniert auch alles so weit.

Hier mein aktueller Code:

Code: Alles auswählen


# Weiterleitungen

				RewriteEngine On

	# ohne index

				RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(html?|php)\ HTTP/
				RewriteRule ^index\.(html?|php)$ https://www.berufskraftfahrer-qualifikations-gesetz.de/ [R=301,L]
				
	# Endung html entfernen			

				RewriteBase /
				RewriteCond %{https://www.berufskraftfahrer-qualifikations-gesetz.de} !(\.[^./]+)$
				RewriteCond %{REQUEST_fileNAME} !-d
				RewriteCond %{REQUEST_fileNAME} !-f
				RewriteRule (.*) /$1.html [L]
				RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP
				RewriteRule ^([^.]+)\.html$ https://www.berufskraftfahrer-qualifikations-gesetz.de/$1 [R=301,L]
				
	# 404 Fehlerseite
	
				ErrorDocument 404 /404.html			
				
	# https umleitungen inkl. ohne www auf mit www
	
				RewriteCond %{HTTP_HOST} !^www\. [NC]
				RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
				RewriteCond %{HTTP:X-Forwarded-Proto} !https 
				RewriteCond %{HTTPS} off
				RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Ein Problem habe ich allerdings und ich finde keine Lösung.

Die Weiterleitung auf eine 404 Fehlerseite funktioniert nicht.

Es kommt zu folgender Fehlermeldung:

Code: Alles auswählen

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at [no address given] to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Nehm ich den Passus "# Endung html entfernen" raus funktioniert die 404 Weiterleitung.

Ich steh auf dem Schlauch und komme nicht weiter. Ich hoffe mir kann jemand einen Tipp geben.

Vielen Dank

Rico

Verfasst:
von

Verfasst: 22.09.2017, 11:58
von elmex
Nun, du lieferst die Antwort ja selbst, "# Endung html entfernen" und "ErrorDocument 404 /404.html" vertragen sich nicht.

Ich denke auch, die Zeile "RewriteCond %{https://www.berufskraftfahrer-qualifikations-gesetz.de} !(\.[^./]+)$" kann nicht funktionieren, daher wohl der Fehler 500 (anscheinend kommt der immer, wenn man eine .html aufruft). Genaueres sagt dir das error.log, wie es auch in der Fehlermeldung steht.

Im Allgemeinen sind deine RewriteCond irgendwie "wild". Das geht besser...

Verfasst: 22.09.2017, 20:17
von Riggi29
Hi,

danke für die Antwort.

Ich weiß dass das besser geht, aber ich kanns nicht besser :-(

Die Fehlermeldung kommt nicht, wenn ich andere .html Seiten öffne.

https://www.berufskraftfahrer-qualifika ... e/404.html leitet auch auf https://www.berufskraftfahrer-qualifika ... etz.de/404 um.

Nur wenn ich eine fehlerhaft URL eintippe, leitet es nicht um und es kommt der Fehler.

Verfasst: 25.09.2017, 21:20
von Riggi29
Hab jetzt bisschen rumprobiert. So funktioniert es:

Code: Alles auswählen

	# Endung html entfernen						

				RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC]
				RewriteRule ^ /%1 [NC,L,R=301]
				RewriteCond %{REQUEST_FILENAME}.html -f
				RewriteRule ^ %{REQUEST_URI}.html [NC,L]

				
	# 404 Fehlerseite
	
				ErrorDocument 404 /404.html