rolfi: htaccess

Beitrag lesen

hi Sven,

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.

aha, ok.

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.

ok, in meinem beispiel unten auf der hauptseite.

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!

dann wäre sowas in der form

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^/*.* error404.html [R,L]

besser? Oder wie würde man Deiner Meinung nach dateien jeglicher art, die nicht existieren mit htaccess umleiten?

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!

genau, das stimmt.
MfG
rolfi