2016-03-19 3 views
1

Ich muss in .htaccess schreiben wie im Titel beschrieben, aber nur die erste funktioniert, hier ist, wie meine .htaccess aussieht jetzt:Htaccess Need: http zu https - nicht existierende Dateien, Ordner, Subdomains zu 404 - Nur erste funktioniert

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L] 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /404.php [R,L] 

ErrorDocument 404 /404.php 

Beispiele, die nicht

Diese beiden Beispiele nicht existierenden Subdomains nur dann "Unable to connect" zeigen hängen funktioniert, aber ich möchte, dass sie REAL 404-Fehlerseite anzuzeigen:

http://nonexisting.example.com 
https://nonexisting.example.com 

Wenn wir nicht existierende Dateien oder Ordner eingeben, zum Beispiel:

https://example.com/nonexistingfile.php 
https://example.com/nonexistingfolder/ 

es meine 404.php Seite allright zeigt aber sie erscheinen als SOFT 404 und ich möchte es die REAL 404-Fehlerseite zeigen.

Ich habe rund 30 verschiedene Varianten der zweiten Rewrite-Sektion ohne Erfolg ausprobiert. Irgendein Code gab einen REAL 404-Code zurück, zeigte aber eine durcheinander geratene Seite, nicht meine 404.php-Seite.

+0

Was meinst du mit 'SOFT 404'? – anubhava

+0

Die "nicht vorhandenen Subdomänen" funktionieren ordnungsgemäß, es sei denn, Sie haben einen Platzhalter-DNS-Eintrag. – Tigger

+0

@anubhava Accorind to google: Die Ziel-URL existiert nicht, aber Ihr Server gibt keinen 404 (Datei nicht gefunden) Fehler zurück – panterara

Antwort

0

Sie brauchen hier keine Umschreibregel, die nur alle nicht existierenden Dateien oder Verzeichnisse auf /404.php mit R=302 umleitet.

Versuchen Sie einfach diesen Code:

# will send correct 404 status as well 
ErrorDocument 404 /404.php 

RewriteEngine On 

RewriteCond %{HTTPS} off 
RewriteRule^https://%{SERVER_NAME}%{REQUEST_URI} [R=302,NE,L] 
+0

scheint es zu funktionieren wie ein anderes Ich versuchte, das war, dass es REAL 404-Code zeigt, aber die Seite (404.php) scheint mit Stil, HTML usw. verpatzt irgendwelche Idee? – panterara

+0

Ich habe zu jedem css, js, images jeweils volle Links ohne Wirkung hinzugefügt. Ich benutze keine anderen umschreibt das dein Beispiel. – panterara

+0

Wie sieht Ihr 404 php-Header aus außer Header ($ _ SERVER ["SERVER_PROTOCOL"]. "404 Not Found"); ODER-Header ("HTTP/1.0 404 nicht gefunden"); ? – panterara

Verwandte Themen