[Apache/Mod_Rewrite] Re-direct afhankelijk van REFERRER

Pagina: 1
Acties:

  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Topicstarter
Hallo!

Momenteel zit ik met een lastig probleem (althans, dat vind ik zelf :P).

Ik probeer het volgende. Ik wil een deeplink van buitenaf naar een frame-pagina re-directen naar een pagina waarin dezelfde link in een frame wordt getoond. (Ongeveer het tegenovergestelde van een frame-buster dus).

Ik wil hiervoor graag Apache's Mod-Rewrite gebruiken, omdat dit snel werkt en omdat de applicatie waarnaar gelinked wordt (een photo-album app) niet door mij gebouwd is (ik heb niet zo'n behoefte om door honderden regels code te gaan zitten spitten).

De regel is eigenlijk iets als volgt:
- Wanneer de HTTP_REFERRER niet bevat "sentimento.nl", dan moet de volgende regel toegepast worden.
- Uit de url moet gevist worden de GET variabele "album", en vervolgens moet worden ge-redirect naar /album.html?album=<opgeviste waarde>

Nu heb ik tot nu toe onderstaande bedacht, maar - zoals je niet zal verbazen - werkt dat niet. Het is erg lastig dat ik niet weet hoe ik debugging info kan opvragen. Ik weet dus ook niet wáár het mis gaat.

code:
1
2
RewriteCond %{HTTP_REFERER} !^.*sentimento.*
RewriteRule ^(.*).php(.*?)(album=)(.*?)&(.*)   /album.html&album=$3 [NE]


Wie oh wie is er zo los op Mod_Rewrite én op RegExp, dat hij/zij mij kan verder helpen.

Alvast zéér veel dank.

Verwijderd

Ik zou eerst de target url ff fixen: (? ipv &)

RewriteRule ^(.*).php(.*?)(album=)(.*?)&(.*) /album.html?album=$3 [NE]

[ Voor 7% gewijzigd door Verwijderd op 03-05-2005 17:56 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 07-05 22:49

curry684

left part of the evil twins

gvanh schreef op dinsdag 03 mei 2005 @ 17:38:
Nu heb ik tot nu toe onderstaande bedacht, maar - zoals je niet zal verbazen - werkt dat niet. Het is erg lastig dat ik niet weet hoe ik debugging info kan opvragen. Ik weet dus ook niet wáár het mis gaat.
[google=rewritelog httpd.conf] ;)

En je RewriteCond klopt, ik zou alleen de Rule zo doen als ik je omschrijving lees:
code:
1
RewriteRule \.php\?(.*)album=([0-9]+)&   /album.html?album=$2 [L]

[ Voor 22% gewijzigd door curry684 op 03-05-2005 18:43 ]

Professionele website nodig?


  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Topicstarter
Hmmm ... ik snap er steeds minder van. De rule die jij opgeeft, doet ook al helemaal niets. Wat nu ongeveer wel wat doet, is het volgende:
code:
1
2
3
4
RewriteEngine on
RewriteCond %{HTTP_REFERER} www.sentimento.nl.* [OR]
RewriteCond %{HTTP_REFERER} =""
RewriteRule ^(.*).php(.*) /album.html$2 [NE]


Maar voor mijn gevoel is dit precies verkeerd om!

Wat hiervan alleen NIET werkt, is dat de ?querystring niet meekomt. Maar bij het aanzetten van de RewriteLogLevel en het lezen van de log, lijkt het wel alsof ook de URI waartegen wordt gecontroleerd helemaal niet de query-string bevat.

  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Topicstarter
Ik ben eruit!

Die laatste RewriteRule, daar moest nog achter komen te staan [QSA]. Dan wordt de URI wel inclusief query-string meegepakt.

Dank voor de hulp!