Seite 1 von 1

mod_rewrite Problem

Verfasst: 13.10.2004, 15:53
von vormizaxo
Hallo,

ich habe auf folgendes Problem auch nach längerem Suchen keine Antwort gefunden.

Ich habe eine Homepage und dort eine Seite test.html.
Diese soll durch mod_rewrite nicht geändert werden.

Ansonsten soll aber folgende Regel gelten:
RewriteRule ([-a-zA-Z0-9]*).html /script.cgi?query=$1
Mein Problem ist, daß bei Anfragen mit "test.html" logischerweise auf cgi-bin/search.cgi?query=test weitergeleitet wird. Ich möchte aber nur dann weiterleiten, wenn ursprünglich keine Datei existiert. Kann das wer nachvollziehen und mir helfen?

Danke

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 13.10.2004, 15:58
von Michael
Immer wieder das gleiche Thema

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/([^.]*).html$
RewriteRule ^(.*) /index.php?query=%1 [L]

Immer wieder "FAST" die gliche Antwort :)

Michael

Verfasst: 13.10.2004, 16:17
von vormizaxo
Michael hat geschrieben:Immer wieder das gleiche Thema

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/([^.]*).html$
RewriteRule ^(.*) /index.php?query=%1 [L]

Immer wieder "FAST" die gliche Antwort :)

Michael
Hallo,

was soll denn an dieser Anweisung bewirken, daß die vorhandene test.html nicht weitergleitet wird?

Verfasst: 13.10.2004, 23:57
von zebby
Hallo,

es müsste ausreichen, wenn du die Regel einfach für die Datei erweiterst und an den Anfang setzt.

RewriteRule test.html test.html

Gruß Zebby

Verfasst: 14.10.2004, 13:23
von vormizaxo
Hallo,

ich habe das jetzt damit gelöst, daß ich auf eine andere Dateiendung ausgewichen bin. :wink:

Verfasst: 14.10.2004, 18:57
von Caterham
RewriteRule test.html test.html
ohne das L-Flag für "last" müssten jedoch die folgenden Regeln normal ausgeführt werden.

Zur Info: Möglichkeiten zum Ausschließen von dateien/Verzeichnissen

Code: Alles auswählen

RewriteRule test\.html - [L]
oder

Code: Alles auswählen

RewriteRule !test\.html - [C]
über der RewriteRule, die nicht ausgeführt werden soll.

1. Regel besagt, dass wenn test.html (Achtung, den Punkt escapen) 'aufgerufen wird' - nichts machen (-) und letzte Regel (d.h. keine weiteren Regeln werden mehr ausgeführt)
2. Regel besagt, dass wenn nicht test.html (Achtung, den Punkt escapen) 'aufgerufen wird' - nichts machen (-) und mit der RewriteRule unter der Ausschlusszeile verketten; d.h. die eine folgende RewriteRule wird nur ausgeführt, wenn test.html nicht angefordert wurde. Die 2., 3.,... RewriteRule unter der Verkettungsregel wird dann wieder ausgeführt (es sei denn, dass die 1. Regel unter der Verkettungsregel ebenfalls per [C] mit der folgenden Regel verkettet wird).

Gruß
robert