Zur Navigation

404 Weiterleitung funktioniert nicht

1 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:

# 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:

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



24.09.2017 22:32

2 Jörg Kruse

Was hat diese Zeile für einen Zweck:

 RewriteCond %{https://www.berufskraftfahrer-qualifikations-gesetz.de} !(\.[^./]+)$

... bzw. was hast du da ursprünglich angepasst?

Eine URL als Variablenname ergibt für mich keinen Sinn

Abgesehen davon kannst du eine Ausnahme für die 404.html definieren:

            RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP
            RewriteCond %{REQUEST_URI} !404\.html
            RewriteRule ^([^.]+)\.html$ https://www.berufskraftfahrer-qualifikations-gesetz.de/$1 [R=301,L]

... dann wird diese nicht ein zweites Mal weitergeleitet, was vermutlich zu dem 500er Error führt

24.09.2017 23:29

3 riggi29

Hallo Jörg,

hab die Ausnahmeregel eingefügt, hat aber nicht funktioniert.

Ich hab jetzt folgendes getestet und es funktioniert:

	
# 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]

Danke für deine Hilfe

25.09.2017 21:19

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]