Sven Rautenberg: htaccess

Beitrag lesen

Moin!

Ein Redirect hilft nicht, weil das kein HTTP-Status 404 ist, sondern 302. Also eine existierende Seite.

ist eine 404 seite nicht auch eine seite?

Siehe https://forum.selfhtml.org/?t=176872&m=1164505 - ich will hier nicht alles doppelt schreiben.

Außerdem steht der URL-Parameter der RewriteRule nicht zur Verfügung, sondern muß separat in einer RewriteCond abgehandelt werden.

hmmm versteh ich nicht

Die Frage des OP war, wie er Requests auf die URL "/" (also die Startseite) mit 404 beantwortet, an denen ein Parameter "?p=..." dranhängt. Den Parameter in der URL kann man aber in der RewriteRule nicht abfragen.

Und zu guter letzt ist der reguläre Ausdruck alles andere als korrekt: Null oder beliebig viele Schrägstriche plus Null oder beliebig viele Zeichen - was soll das sein?

der schrägstrich bedeutet doch alles was nach der domain

Hängt davon ab, wo die RewriteRule platziert wird. In einer .htaccess sieht die Lage anders aus, als in festen Apache-Konfigurationsdateien.

z.B. meineseite.de/... und die *.* jede beliebig angefragte nullbyte datei...oder ist das etwa falsch?(lösung?)

Du bist dem Irrtum aufgesessen, dass es hier um "Datei-Wildcards" geht. Die Suchmuster sind reguläre Ausdrücke. Es gilt also kein "*.*" als Ausdruck für "alle Dateien", weil die RewriteRule gar nicht auf Dateibasis arbeitet, sondern auf URL-Basis - und außerdem haben Sterne und Punkte in der Welt der regulären Ausdrücke andere Bedeutungen!

Bei mir funktionierts auf jedenfall wie hier angegeben, nur werden die nullbyte anfragen auf meine hauptseite geleitet.

Das liegt daran, dass du - aber nur zufällig (!) - mit der RewriteRule pauschal einfach alle URLs erfaßt, mit der zugehörigen RewriteCond die Abfrage auf "existiert die Datei und ist sie größer als 0 Byte" filterst, und falls nein, dann ein REDIRECT auf eine Seite auslieferst, die augenscheinlich eine 404-Fehlerseite sein soll, aber bei der nirgendwo ein 404-Fehlerstatus ausgeliefert wird!

- Sven Rautenberg

--
"Love your nation - respect the others."