Zur Navigation

Weiterleiten einer URL abhängig vom Query String [3]

..bei Anwesenheit von mehreren Query Strings

21 pdm_2011

hi,

da kommt die selber fehlermeldung.

kann man das nicht auch einfacher lösen?

meine überlegung war / ist:
1.
wenn type=erweitert in url (z.B. erweitert_artikel.html)
dann leite bitte auf folgende url um: index.php?id=1&titel=2 usw.
2.
wenn type=erweitert und uebersicht in url (z.B. erweitert_artikel_uebersicht.html)
dann leite bitte auf folgende url um: index.php?id=1&titel=2&usw=$3 usw.
3.
.... usw.

weis echt nicht mehr weiter...

ist denn mein php script soweit richtig? ich kann kein fehler erkennen.


LG

17.12.2010 20:30

22 Jörg Kruse

Die Fehlermeldung kommt vom Server; das PHP-Script kommt hier erst gar nicht zum Zuge und ist somit unschuldig.

The requested URL /test/normal-1-Kontakt.html was not found on this server

Diese URL passt aber auch auf keins der beiden Muster - da fehlt noch das Verzeichnis test/

RewriteRule ^test/([-a-zA-Z0-9]+)-([-a-zA-Z0-9]+)-([-a-zA-Z0-9]+)\.html$ test/index.php?type=erweitert&id=$1&titel=$2&neuid=$3 [L]

17.12.2010 20:53

23 pdm_2011

hab ich gerade probiert, kommt die selbe fehlermeldung....

ich verzweifle

17.12.2010 23:01

24 Jörg Kruse

Den Anfangs-Slash hast du auch rausgenommen?

Die htaccess Datei liegt im Haupt-Verzeichnis, und die index.php im Verzeichnis test?

Leere auch mal den Browser-Cache, um sicherzustellen, dass die Fehlerseite nicht daraus neu geladen wird.

Falls auch das nichts hilft, bitte nochmal den kompletten aktuellen Inhalt der htaccess Datei posten.

17.12.2010 23:37

25 pdm_2011

der ordner test steht für das rootverzeichniss
die htaccess und die index datei sind in dem ordner test

hier der inhalt der datei:

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^type=erweitert
RewriteRule ^test/([-a-zA-Z0-9]+)-([-a-zA-Z0-9]+)-([-a-zA-Z0-9]+)-([-a-zA-Z0-9]+)\.html$ /test/index.php?type=erweitert&id=$1&titel=$2&neuid=$3 [L]
RewriteCond %{QUERY_STRING} ^type=normal
RewriteRule ^test/([-a-zA-Z0-9]+)-([-a-zA-Z0-9]+)\.html$ /test/index.php?type=normal&id=$1&titel=$2 [L]

LG

18.12.2010 00:53

26 Jörg Kruse

Du hast ja schon wieder die Anfangs-Slashes drin!

Abgesehen davon würde ich die Pfade anders referieren, wenn sich die htaccess Datei im Ordner test befindet, d.h. das "/test/" in der RewriteBase aufnehmen und dafür aus den anderen Pfaden rausnehmen

RewriteEngine On
RewriteBase /test/
RewriteCond %{QUERY_STRING} ^type=erweitert
RewriteRule ^([-a-zA-Z0-9]+)-([-a-zA-Z0-9]+)-([-a-zA-Z0-9]+)-([-a-zA-Z0-9]+)\.html$ index.php?type=erweitert&id=$1&titel=$2&neuid=$3 [L]
RewriteCond %{QUERY_STRING} ^type=normal
RewriteRule ^([-a-zA-Z0-9]+)-([-a-zA-Z0-9]+)\.html$ index.php?type=normal&id=$1&titel=$2 [L]

... und auch die "/" am Anfang raus!

18.12.2010 01:25

27 pdm_2011

auf die idee kam ich gerade auch ;-)

aber wieder das selbe:

Not Found

The requested URL /test/normal-1-Kontakt.html was not found on this server.

ergebniss.

weis echt nicht mehr woran es liegt...

18.12.2010 01:28

28 pdm_2011

jetzt kommt nach den neustarten von firefox:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@........de and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log


versteh ich nicht ;-(

18.12.2010 01:32

29 pdm_2011

RewriteEngine On
RewriteRule ^([-a-zA-Z0-9]+)-([-a-zA-Z0-9]+)-([-a-zA-Z0-9]+)-([-a-zA-Z0-9]+)\.html$ /test/index.php?type=erweitert&id=$1&titel=$2&neuid=$3 [L]
RewriteRule ^([-a-zA-Z0-9]+)-([-a-zA-Z0-9]+)\.html$ /test/index.php?type=normal&id=$1&titel=$2 [L]

aber wenn ich nach den type unterscheiden will geht es nicht, versteh das nicht

18.12.2010 01:40

30 pdm_2011

sorry,vergessen , mit den oberen inhalt funktioniert es, aber ich glaube nicht das es optimal ist.

ich dachte ich verstehe die logik aber anscheind ist das wohl nicht so.

also nochmal nur zur sicherheit:

im html quellcode steht zb: artikel.html oder mit unterkategorien: artikel-schuhe.html oder mit id: artikel-schuhe-234.html

und so soll der link auch angezeigt werden

umgeleitet werden soll:

type = index.php?type=$1&vieles mehr
unterkategorien = index.php?type=$1&unterkategorie=$2&vieles mehr
id = index.php?type=$1&unterkategorie=$2&id=234&vieles mehr

als Beispiel.

was mache ich falsch? frustriert mich gerade.
ist ggf. mein ansatz komplett falsch?

danke für deine geduld und hilfe

LG

18.12.2010 01:46