Seite 1 von 2

Denkfehler bei mod_rewrite

Verfasst: 07.02.2005, 14:29
von workershop
Hallo.
Ich komme hier nicht weiter. Ich möchte ein Script auf einem Unterverzeichnis meines Shops laufen lassen. Um die Seiten von dem Script Suchmaschinenfreundlich zu machen benutze ich mod _rewrite im scriptordner.

Der Pfad schaut so aus: www.domain.de/script/

die htaccess.
RewriteEngine On
RewriteBase /
RewriteRule ^/test.html$ /add_link.php

der Link zum Test schaut so aus: www.domain.de/script/test.html


Warum funktioniert das nicht?

Verfasst:
von

Denkfehler bei mod_rewrite

Verfasst: 07.02.2005, 14:34
von Christophe
afaik müsste es entweder

RewriteRule ^/script/test.html$ /add_link.php

oder

RewriteRule /test.html$ /add_link.php

heißen. (Je nachdem, was du machen willst.)

^ bedeutet am genau am Anfang des Ausdrucks

Denkfehler bei mod_rewrite

Verfasst: 07.02.2005, 14:39
von workershop
nein, das funktioniert auch nicht. 404 Fehler

Denkfehler bei mod_rewrite

Verfasst: 07.02.2005, 14:44
von workershop
jetzt geht es:

RewriteCond %{REQUEST_FILENAME} /script/test.html
RewriteRule (.*) /script/add_link.php [L]

Denkfehler bei mod_rewrite

Verfasst: 07.02.2005, 14:49
von Christophe
mh, hast du den Apachen neu gestartet? Zumindest wenn du die Sachen in httpd.conf zu stehen hast.

RewriteBase habe ich noch nie benutzt, kann ich nichts zu sagen, ansonsten ist vielleicht diese Seite ganz hilfreich.

Christophe

Denkfehler bei mod_rewrite

Verfasst: 07.02.2005, 14:51
von workershop
Ich bin bei 1und1, da kann man nichts neu starten. Aber jetz geht es ja.

Re: Denkfehler bei mod_rewrite

Verfasst: 07.02.2005, 14:53
von bruko
Hi,
statt:
workershop hat geschrieben: RewriteRule ^/test.html$ /add_link.php
RewriteRule ^/test\.html$ /add_link.php
den Punkt escapen.

Denkfehler bei mod_rewrite

Verfasst: 08.02.2005, 16:49
von Caterham
Im per-dir kontext aber immer ohne leading slash

Code: Alles auswählen

RewriteRule ^test\.html$ /add_link.php [L]
Grüße
Robert

Denkfehler bei mod_rewrite

Verfasst: 09.02.2005, 11:49
von workershop
Danke für eure Hilfe.

Jetzt sind es die Kategorien.
In unseren Shopverzeichnissen funktioniert das alles schon immer, nur nicht in dem Teil, was in einem Unterverzeichnis liegt.

Was ist hieran falsch. 404 Fehlermeldung.
RewriteRule ^/script/test-(.*)_1.html$ /script/show_cat.php?cat_id=$1&page= [L]

Denkfehler bei mod_rewrite

Verfasst: 09.02.2005, 17:06
von Caterham
- auch hier muss der leading slash - also /script weg. Das gilt für alle Regeln in der .htaccess-Datei.

Code: Alles auswählen

RewriteRule ^script/test-(.+)_1\.html$ /script/show_cat.php?cat_id=$1&page= [L]

Denkfehler bei mod_rewrite

Verfasst: 10.02.2005, 10:02
von workershop
Vielen dank für deine Hilfe. Jetzt funktioniert es. Ich hatte auch den Fehler gemacht die htaccess im Verzeichnis vom Script zu haben und nicht im Rootverzeichnis von der Hauptdomain.

Denkfehler bei mod_rewrite

Verfasst: 10.02.2005, 14:35
von Caterham
Ich hatte auch den Fehler gemacht die htaccess im Verzeichnis vom Script zu haben und nicht im Rootverzeichnis von der Hauptdomain
Für den Fall (wenn die .htaccess im Unterverzeichnis läge) müsstest du statt
^script/test-(.+)_1\.html$
folgendes verwenden:

Code: Alles auswählen

^test-(.+)_1\.html$

Verfasst: 23.02.2005, 00:05
von lomo
Hi,

ich wollte für 'ne Rewrite-Frage nicht schon wieder einen Thread aufmachen.

Wer kann sagen, wie eine Rewrite-Regel für folgende Anweisung aussieht:

wenn mydatei.cgi?abcd abgerufen wird, dann leite um auf /verzeichnis/anderedatei.php/abcd

"abcd" kann verschiedene Zeichen beinhalten (Gross- Kleinbuchstaben sowie Ziffern). Der Rest bleibt konstant.

Denkfehler bei mod_rewrite

Verfasst: 23.02.2005, 00:14
von Caterham
:)

Code: Alles auswählen

RewriteCond %{QUERY_STRING} ^(.+)
RewriteRule ^cgi-bin/mydatei\.cgi$ /verzichnis/anderedatei.php/%1? [R=301,L]
--> www.modrewrite.de

Verfasst: 23.02.2005, 00:28
von lomo
Vielen Dank!

Folgender URL wird im Browser nach der Anwendung der Regel angezeigt: https://www. mydomain.de/verzeichnis/anderedatei.php/abcd?abcd

Es wird zwar die richtige Seite auch fehlerlos angezeigt (wunderbar), aber der Schwanz in der Form "?abcd" ist ja überflüssig. Wie werde ich den los?