Seite 1 von 1

URL / Verzeichnis Probleme

Verfasst: 06.05.2009 14:46
von pukey187
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

Verfasst: 06.05.2009 16:36
von Gumbo
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

Verfasst: 06.05.2009 16:58
von pukey187
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 :)

Verfasst: 06.05.2009 17:29
von Gumbo
Folgendes sollte reichen:

Code: Alles auswählen

RewriteCond %{THE_REQUEST} ^GET\ /(http://([^/?\s]+/)+)(\d+)\.html[?\s]
RewriteRule ^http:/ ?link=%1&layerad=%3

Verfasst: 06.05.2009 17:49
von pukey187
SUPER!! Hat alles geklappt!


vielen dank!!