Seite 1 von 1
rewriteRule
Verfasst: 04.09.2005, 16:03
von hollag
Hallo,
habe es endlich nach stunden geschafft eine umleitung zu bekommen.
Was aber nicht ganz funktioniert ist das alles umgeleitet wird, auch dateien die existieren.
Beispiel:
https://www.domain.ee/Computer/test/542.html #542.html ist vorhanden und wird auch auf
https://www.domain.ee/Computer/test/ umgeleitet
Es soll nur umgeleitet werden wenn die dateiendung nicht vorhanden ist.
Code: Alles auswählen
rewriteEngine on
rewriteBase /
rewriteRule ^Computer/([A-z]+)/([0-9]+).html /Computer/$1
Danke im Voraus
rewriteRule
Verfasst: 04.09.2005, 16:26
von Caterham
Hi.
Es soll nur umgeleitet werden wenn die dateiendung nicht vorhanden ist.
Wenn die Datei
endung nicht vorhanden ist oder wenn die Datei nicht vorhanden ist? Für letzteren Fall:
Code: Alles auswählen
RewriteEngine on
# ...REQUEST_FILENAME ist keine existierende Datei...
RewriteCond %{REQUEST_FILENAME} !-f
rewriteRule ^Computer/([A-Za-z]+)/([0-9]+)\.html$ /Computer/$1 [L]
->
www.modrewrite.de
Grüße
Robert
Verfasst: 04.09.2005, 16:58
von hollag
Danke für die schnelle Hilfe,
habe bei
www.modrewrite.de geschaut aber nichts gefunden.
Habe eins vergessen.
was ist wenn es beliebig viele verzeichnisse sind
https://www.domain.ee/Computer/test/
https://www.domain.ee/Computer/test/oder/noch/eins/
Die verzeichnistiefe ist 14
Danke
rewriteRule
Verfasst: 04.09.2005, 17:01
von Caterham
Die RewriteRule greift dann nicht. Du müsstest dann den Slash mit in die Zeichenklasse aufnehmen.
Verfasst: 04.09.2005, 17:06
von hollag
Danke Caterham
Ohne dich hätte ich es nie geschafft
Verfasst: 04.09.2005, 19:44
von hollag
das mit der dateiendung hat sehr gut funktioniert aber wie mache ich das mit verzeichnissen
habe das eingefügt aber es funktioniert nicht. Das -d ist doch für verzeichnisse
Code: Alles auswählen
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
rewriteRule ^Computer/([A-Za-z]+)/([A-Za-z]+)\.html$ /Computer/$1 [L]
Danke
rewriteRule
Verfasst: 04.09.2005, 22:33
von Caterham
aber wie mache ich das mit verzeichnissen
Da greift die Regel ja schon mal nicht, d.h. endweder nutzt du zwei Regeln oder du machst '.html' optional. Da scheinbar deine Zeichen am Ende auch andere sind (oben [0-9] hier [A-Za-z]) würde ich ehr zwei Regeln nutzen:
Code: Alles auswählen
RewriteEngine on
# ...REQUEST_FILENAME ist keine existierende Datei...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^Computer/([A-Za-z/]+)/([0-9]+)\.html$ /Computer/$1 [L]
# ...REQUEST_FILENAME ist kein existierendes Verzeichnis...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^Computer/([A-Za-z/]+)/([A-Za-z]+)/?$ /Computer/$1 [L]
Verfasst: 24.09.2005, 12:10
von hollag
Hallo,
es träten im nachhinein immer wieder Problem auf.
RewriteCond %{REQUEST_FILENAME} !-f
rewriteRule ^Shopping/([A-Za-z/_0-9,]+)/([0-9]+)\.html$ Shopping/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^Shopping/([A-Za-z/_0-9,]+)/([A-Za-z_,0-9]+)/?$ /Shopping/$1 [L]
Das problem ist jetzt das
/Shopping/General_Merchandises/General_Auto/U/9215.html auf
/Shopping/General_Merchandises/General_Auto_U/9215.html gändert wurde oder eben nur
/Shopping/General_Merchandises/General_Auto/U/ auf
/Shopping/General_Merchandises/General_Auto_U/ . Es können verschiedene ordnerebenen(Tiefen) sein. Die andern rewrites funktionieren bei der URL nicht. Habe es versucht umzuschreiben aber immer 500 Server Error
Der Ordner könnte auch so aussehen, also jede mögliche Art von ordner und HTML datei Manipulation
/Shopping/General_Merchandises/General_Auto/U/test/und_noch/ein_test
Danke
Verfasst: 25.09.2005, 13:25
von hollag
Habe das jetzt so gemacht, funktioniert aber nicht ganz richtig mit den andern Regeln
Code: Alles auswählen
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^Shopping/([A-Za-z/_0-9,]+)/([A-Za-z_,0-9]+)/?$ /Shopping/$1 [C]
RewriteRule ^Shopping/([A-Za-z/_0-9,]+)/([A-Za-z_,0-9]+) /Shopping/$1/$1_$2 [C]
RewriteRule ^Shopping/([A-Za-z/_0-9,]+)/([0-9]+)\.html$ /Shopping/$1