ARTFULART
Mitglied seit: 09.09.2010

Themenersteller
Selbständig
Beginner (17 Beiträge)

Es kommt eine 403 anstatt der gewünschten 404 ?!

13.05.2015, 13:28 Uhr    .htaccess    4034 mal gelesen    15 Antwort(en).

Hallo Leute,

Mir ist gerade was aufgefallen:

In meiner .htaccess (Strato gehostet) definiere ich meine Fehlerseiten:

ErrorDocument 404 /404.html


Das funktioniert fast gut 2

Die URL webpodo.de/unfung leitet auf die /404.html um <- gut !
Die URL webpodo.de/unfug/ leitet auf eine 403 (...You don't have permission to access...)<-- nicht gut !

Mir fehlt hier ein Ansatzpunkt bzw. eine erklärung um zu verstehen was ich hier falsch mache und bitte Euch um Rat.

Hier die entsprechenden Rewrite-Einträge der .htaccess

ErrorDocument 404 /404.html
ErrorDocument 401 "Dies ist ein Passwortgeschützter Bereich"

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.webpodo\.de)(:80)? [NC]
RewriteRule ^(.*)$ webpodo.de/$1 [R=301,L]


RewriteCond %{HTTP_USER_AGENT} libwww-perl.*
RewriteRule .* – [F,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteRule ^(.*)$ $1.html [L]






Grüße
Markus Tietz

matthes
Mitglied seit: 08.05.2010

Foren Moderator
Evil Genius
Content Halbgott (967 Beiträge)
13.05.2015, 14:05 Uhr

ARTFULART schrieb:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\\.html$ [NC]
RewriteRule ^(.*)$ $1.html [L]


Da der Text der 403 ausgibt, man habe keinen Zugriff auf "blabla/.html" obwohl nur blabla/ angefragt war, würde ich mal sagen, Diese oben zitierte Rewrite-Bedingung greift.
Es ist keine Datei, es ist kein Ordner, es endet nicht auf .html - also wird es auf .html umgeschrieben.
Warum das bei Ordnern greift und bei fehlendem Backslash nicht, sehe ich gerade auf den ersten Blick nicht.


Make Seitenreport great again!

ARTFULART
Mitglied seit: 09.09.2010

Selbständig
Beginner (17 Beiträge)
13.05.2015, 15:04 Uhr

Hey und Danke Matthes fürs Feedback 4

ARTFULART schrieb:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\\.html$ [NC]
RewriteRule ^(.*)$ $1.html [L]



Das habe ich mal auskommentiert, dann wird auch sauber bei "...bababa/" auf die 404 verwiesen!

Hilft mir aber noch nicht weiter, weil meine links intern ja keine Dateiendungen haben 2


Grüße
Markus Tietz

matthes
Mitglied seit: 08.05.2010

Foren Moderator
Evil Genius
Content Halbgott (967 Beiträge)
13.05.2015, 15:35 Uhr

Dann mach doch etwas in der Art:

RewriteCond %{REQUEST_FILENAME}\\.html -f
RewriteRule (.*) $1.html


Make Seitenreport great again!

ARTFULART
Mitglied seit: 09.09.2010

Selbständig
Beginner (17 Beiträge)
13.05.2015, 16:47 Uhr

Matthes schrieb:

Dann mach doch etwas in der Art:

RewriteCond %{REQUEST_FILENAME}\\.html -f
RewriteRule (.*) $1.html




Das (oder noch kürzer = RewriteRule ^([^\\.]+)$ $1.html [NC,L] ) hilft mir wieder bei meinen internen Links, aber "...blabla/" bringt wieder eine 403.

Stehe noch auf dem Schlauch 2


Grüße
Markus Tietz

matthes
Mitglied seit: 08.05.2010

Foren Moderator
Evil Genius
Content Halbgott (967 Beiträge)
13.05.2015, 17:04 Uhr

ARTFULART schrieb:
RewriteRule ^([^\\.]+)$ $1.html [NC,L] )


Das ist nicht kürzer, das ist eine andere Regel.
Diese Regel besagt, dass eine Anfrage ohne Punkt die Ressource mit .html ausliefern soll. Das trifft auch auf blabla/ zu.

Meine Regel testet, ob es diese Datei als .html gibt und liefert sie dann aus.

Ich nehme an, Deine Links verzichten auf die Dateiendung, die Dateien liegen aber als .html vor (so habe ich es verstanden)?
Dann wäre meine Regel die vernünftigste.

Deine Regel greift auch bei Ordnern und allem ohne Punkt.


Make Seitenreport great again!

ARTFULART
Mitglied seit: 09.09.2010

Selbständig
Beginner (17 Beiträge)
13.05.2015, 19:56 Uhr

Matthes schrieb:

ARTFULART schrieb:
RewriteRule ^([^\\.]+)$ $1.html [NC,L] )


Das ist nicht kürzer, das ist eine andere Regel.
Diese Regel besagt, dass eine Anfrage ohne Punkt die Ressource mit .html ausliefern soll. Das trifft auch auf blabla/ zu.

Meine Regel testet, ob es diese Datei als .html gibt und liefert sie dann aus.



Ja, meine Webseiten liegen als .html vor, ich verlinke aber ohne Dateiendung.

Bei Deiner Regel passiert das:
# webpodo.de/blablabla.html <-nicht vorhanden, es kommt 404
# webpodo.de/blablabla.html/ <-nicht vorhanden, es kommt 404
# webpodo.de/blablabla <-nicht vorhanden, es kommt 404
# webpodo.de/blablabla/ <-nicht vorhanden, es kommt 403
# webpodo.de/blablabla.gif/ <-nicht vorhanden, es kommt 403 a

# webpodo.de/werbear <-vorhanden, wird auch angezeigt (werbear.html ist auf dem Server vorhanden)

Bei "meiner" Regel passiert das:
# webpodo.de/blablabla.html <-nicht vorhanden, es kommt 404
# webpodo.de/blablabla.html/ <-nicht vorhanden, es kommt 404
# webpodo.de/blablabla <-nicht vorhanden, es kommt 404
# webpodo.de/blablabla/ <-nicht vorhanden, es kommt 403
# webpodo.de/blablabla.gif/ <-nicht vorhanden, kommt 404 4

# webpodo.de/werbear <-vorhanden, wird auch angezeigt (werbear.html ist auf dem Server vorhanden)

Ich habe also bei beiden Regel weiterhin das Problem das blablabla/ eine 403 ausgibt. Hier wird wohl dann ein Ordern "erkannt" und daher kommt die 403 ?

Zur. Zeit ist meine Regel aktiv.

BTW: Danke das Du Dich der Sache annimmst 4


Grüße
Markus Tietz

matthes
Mitglied seit: 08.05.2010

Foren Moderator
Evil Genius
Content Halbgott (967 Beiträge)
13.05.2015, 20:56 Uhr

Vorab: Nimm die ganzen Links mal wieder raus... Das kann von Google schnell als Spam interpretiert werden.

Poste mal die ganze .htaccess, wie sie jetzt ist ("ganz" im Sinne von "alles, das hierbei eine Rolle spielt", Expires-Anweisungen u.ä. dürfen gerne raus).
Außerdem solltest Du das Error-Log (vllt. LogLevel hochsetzen) und die Serverkonfiguration durchschauen.

Aus dem, was bisher hier steht, geht nicht hervor, weshalb nicht-existente Ordner 403en statt 404en.


Make Seitenreport great again!

ARTFULART
Mitglied seit: 09.09.2010

Selbständig
Beginner (17 Beiträge)
15.05.2015, 08:49 Uhr

Ich kann den Beitrag nicht mehr editieren, vielleicht kann der Admin das kurz machen ?!


Expires-,Deflate- und Gzip-Anweisungen habe ich rausgenommen:


ErrorDocument 404 /404.html

ErrorDocument 401 "Dies ist ein Passwortgeschützter Bereich"

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.webpodo\\.de)(:80)? [NC]
RewriteRule ^(.*)$ webpodo.de/$1 [R=301,L]

RewriteCond %{HTTP_USER_AGENT} libwww-perl.*
RewriteRule .* – [F,L]

#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} !\\.html$ [NC]
#RewriteRule ^(.*)$ $1.html [L]

#RewriteCond %{REQUEST_FILENAME} !\\.html$
#RewriteRule (.+) $1.html [L]

RewriteRule ^([^\\.]+)$ $1.html [NC,L]

RewriteRule ^css/(.*\\.css) /combine.php?type=css&files=$1
RewriteRule ^javascript/(.*\\.js) /combine.php?type=javascript&files=$1


Grüße
Markus Tietz

matthes
Mitglied seit: 08.05.2010

Foren Moderator
Evil Genius
Content Halbgott (967 Beiträge)
15.05.2015, 15:47 Uhr

Bei dem Beitrag hast Du wieder einen Link drin... Du müsstest vorsichtiger sein.

Aus der .htaccess geht nicht hervor, wieso es zu dem 403 kommt.

Was hat der Blick in Logs und Server-Config ergeben?


Make Seitenreport great again!

harry44
Mitglied seit: 29.10.2014

Beginner (11 Beiträge)
16.05.2015, 13:39 Uhr

Bedenke bitte, Google hat ein langes Erinnerungsvermögen an einmal indexierte URLs.

404 bedeutet die angeforderte Ressource wurde nicht gefunden. Mögliche gründe (Serverausfall, ftp upload... usw)

404 kann also noch sehr lange auftauchen, da die gründe für einen 404 sehr unterschiedlich sein können.

Bei 410 die angeforderte Ressource wird nicht länger bereitgestellt sagst DU SELBST, DASS WILL ICH NICHT MEHR HABEN UND DAS SOLL ES NICHT MEHR GEBEN.

Wenn du etwas nicht mehr haben möchtest dann benutze besser 410 anstatt 404.

Das wird dir jetzt zwar nicht für dein 403 Problem helfen, aber für den nächsten Schritt wird es dir helfen..

Sonst kommt nämlich als nächstes die frage: Hilfe meine 404 Seiten verschwinden einfach nicht aus dem index?


Stromanbieter


Neuen Beitrag erstellen

Um einen Beitrag zu erstellen, müssen Sie eingeloggt sein. Bitte melden Sie sich an.
EinloggenRegistrieren



« zurück zu: .htaccess

Das Seitenreport Forum hat aktuell 4134 Themen und 36063 Beiträge.
Insgesamt sind 47923 Mitglieder registriert.