URL / Verzeichnis Probleme

Wie wir alle wissen (sollten) ändert mod_rewrite keine Links im Script. Damit auch die Links auf Deiner Page auf die neuen "Rewrited URLs" zeigen bedarf es der Anpassung im Code. Fragen und Probleme rund um's Coding werden hier diskutiert.

Moderator: Super-Mod

URL / Verzeichnis Probleme

Beitragvon pukey187 » 06.05.2009 14:46

ICh habe einen Link: http://www.domain.de/?link=http://www.d ... ayerad=123
Diesen möchte ich so erbarmachen machen: http://www.domain.de/http://www.domain2.de//123.html

Das klappt aber leider nicht da mod_rewrite denkt dass da dach http://www.domain.de/ noch 4 Verzeichnisse sind und dann erst das .html kommt.

Was muss ich machen, "Link" als string wahrgenommen wird, also nich als XX Verzeichnisse.


Umgekehrt hatte ich es auch schon versucht: http://www.domain.de/123/http://www.domain2.de/.html

nach 1000000 verschiedenen Versuchen sieht es nun wieder mal so aus:

Code: Alles auswählen
RewriteEngine on


RewriteRule ?(.*)&(.*)$ /?link=$1&layerad=$2



Wichtig ist noch, der "layerad" wert optional ist. Also der Link sieht mal so aus (http://www.domain.de/?link=http://www.d ... ayerad=123) und mal so (http://www.domain.de/?link=http://www.domain2.de/).


Was ratet ihr mir, welches URL Design am besten wäre und wie setze ich es um??




Danke
pukey187
.
.
 
Beiträge: 3
Registriert: 06.05.2009 14:39

Beitragvon Gumbo » 06.05.2009 16:36

Apache nimmt bereits vorher intern ein paar Fehlerkorrekturen vor. Dazu gehört beispielsweise das entfernen von leeren Pfadsegmenten („…//…“).
Probier deswegen mal Folgendes:
Code: Alles auswählen
RewriteCond %{THE_REQUEST} ^GET\ /(http://[^/]+/)(\d+)\.html[?\s]
RewriteRule ^http:/ ?link=%1&layerad=%2
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier

Beitragvon pukey187 » 06.05.2009 16:58

funktioniert ansich super, allerdings nicht bei einer Url wie hier:

Code: Alles auswählen
http://www.modrewrite.de/foren/ftopic6334.html


also wenn ich http://www.domain.de/http://www.modrewr ... l/123.html aufrufe gibt er mir Error 404...


gibt es da eine vereinfachung oder muss ich dann:

Code: Alles auswählen
RewriteCond %{THE_REQUEST} ^GET\ /(http://[^/]+/)(\d+)\.html[?\s] [OR]
RewriteCond %{THE_REQUEST} ^GET\ /(http://[^/]+/)/(\d+)\.html[?\s][OR]
RewriteCond %{THE_REQUEST} ^GET\ /(http://[^/]+/)/(.*)/(\d+)\.html[?\s][OR]
RewriteCond %{THE_REQUEST} ^GET\ /(http://[^/]+/)/(.*)/(.*)/(\d+)\.html[?\s][OR]
RewriteCond %{THE_REQUEST} ^GET\ /(http://[^/]+/)/(.*)/(.*)/(.*)/(\d+)\.html[?\s]




soweit schon mal danke. super sache :)
pukey187
.
.
 
Beiträge: 3
Registriert: 06.05.2009 14:39

Beitragvon Gumbo » 06.05.2009 17:29

Folgendes sollte reichen:
Code: Alles auswählen
RewriteCond %{THE_REQUEST} ^GET\ /(http://([^/?\s]+/)+)(\d+)\.html[?\s]
RewriteRule ^http:/ ?link=%1&layerad=%3
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier

Beitragvon pukey187 » 06.05.2009 17:49

SUPER!! Hat alles geklappt!


vielen dank!!
pukey187
.
.
 
Beiträge: 3
Registriert: 06.05.2009 14:39


Zurück zu Programmierung & Scriptanpassung für mod_rewrite

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron