From: i18n <i1...@ya...> - 2002-08-23 22:28:19
|
Has anybody integrated a script which does a url redirect on outside links? I'd like to have a url something like www.mysite.com/goto?http://www.somewherelse.com The reason for this is to be able to log which outside links are getting clicked on of course. I a prefect rendition, I see a Apache model using Apache::OutputChain or something similar so I don't have to change slash to rewrite the urls. Instead, a simple filter would just search them out and rewrite them as the output is passing through Apache. Thanks for any tips! Barry |
From: Eric D. <eri...@ja...> - 2002-08-24 01:07:17
|
I did something like this. It accesses some links in the database and adds to the hit counter. #!/usr/bin/perl -w #print qq[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Finale//EN">]; print "Content-type: text/html\n\n"; use DBI; use CGI::Form; my $databasename = "slash"; my $location = "localhost"; my $port_num = "3306"; my $database = "DBI:mysql:$databasename:$location:$port_num"; my $db_user = "slash"; my $db_password = ""; my $dbh = DBI->connect($database,$db_user,$db_password); $cgi_form = new CGI::Form; $linkid = $cgi_form->param('linkid'); my $sql_statement2 = "update links set hits=hits + 1 where lid=$linkid"; my $sth = $dbh->prepare($sql_statement2); $sth->execute() or die "Can't execute SQL Statement: $dbh->errstr"; $sth->finish(); my $sql_statement = "SELECT url from links where lid = $linkid"; my $sth2 = $dbh->prepare($sql_statement); my ($myurl); $sth2->execute() or die "Can't execute SQL Statement: $dbh->errstr"; $sth2->bind_columns(undef, \$myurl); my $row; while ($row = $sth2->fetchrow_arrayref) { print qq[<html>\n<head>\n]; print qq[<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">]; print qq[<meta http-equiv="Refresh" content="0; URL=$myurl">]; } print qq[</HTML>]; $sth2->finish(); $dbh->disconnect; i18n wrote: >Has anybody integrated a script which does a url redirect on outside links? I'd like to have a url something like www.mysite.com/goto?http://www.somewherelse.com > >The reason for this is to be able to log which outside links are getting clicked on of course. > >I a prefect rendition, I see a Apache model using Apache::OutputChain or something similar so I don't have to change slash to rewrite the urls. Instead, a simple filter would just search them out and rewrite them as the output is passing through Apache. > >Thanks for any tips! > >Barry > > |
From: shane <sh...@lo...> - 2002-08-26 13:23:06
|
On Friday 23 August 2002 06:25 pm, i18n wrote: > Has anybody integrated a script which does a url redirect on outside links? > I'd like to have a url something like > www.mysite.com/goto?http://www.somewherelse.com There's one running on tangent.org <URL: http://www.tangent.org/ > Shane |
From: i18n <i1...@ya...> - 2002-08-26 14:54:35
|
At 09:25 AM 8/26/2002 -0400, shane wrote: >On Friday 23 August 2002 06:25 pm, i18n wrote: >> Has anybody integrated a script which does a url redirect on outside links? >> I'd like to have a url something like >> www.mysite.com/goto?http://www.somewherelse.com > >There's one running on tangent.org > ><URL: http://www.tangent.org/ > > > Shane Hmm, maybe Krow will jump in and explain...it is easy to write the redirect script - that is about one line...but I wonder if anyone has implemented a rewriting of the urls in an apache module. the advantage to that is - you don't have to touch your slash code, which makes maintenance/upgrades easier - it will work with non-slash code/html if it is part of your site Thanks Barry |
From: Brian A. <br...@ta...> - 2002-08-26 16:12:06
|
On Mon, 2002-08-26 at 07:51, i18n wrote: > At 09:25 AM 8/26/2002 -0400, shane wrote: > >On Friday 23 August 2002 06:25 pm, i18n wrote: > >> Has anybody integrated a script which does a url redirect on outside links? > >> I'd like to have a url something like > >> www.mysite.com/goto?http://www.somewherelse.com > >There's one running on tangent.org > ><URL: http://www.tangent.org/ > > > Shane > > Hmm, maybe Krow will jump in and explain...it is easy to write the redirect script - that is about one line...but I wonder if anyone has implemented a rewriting of the urls in an apache module. the advantage to that is > > - you don't have to touch your slash code, which makes maintenance/upgrades easier > - it will work with non-slash code/html if it is part of your site What you are seeing is mod_relocate. Its written in C and pretty much takes zero resources (it was written for very high volume traffic sites that needed to track this stuff). I have a local patch that I use that causes Slash to log entries for it. I will probably commit this to the core at some point in the very near feature (it is just two lines in Slash::Apache::Log). Expect to see a feature at some point which will auto "locate" your URLs in stories. -Brian -- _______________________________________________________ Brian "Krow" Aker, br...@ta... Slashdot Senior Developer Seattle, Washington http://krow.net/ http://askbrian.org/ _______________________________________________________ You can't grep a dead tree. |
From: Alex M. <alex@OWAL.co.uk> - 2002-08-26 16:36:28
|
> >On Friday 23 August 2002 06:25 pm, i18n wrote: > >> Has anybody integrated a script which does a url redirect on outside > links? > >> I'd like to have a url something like > >> www.mysite.com/goto?http://www.somewherelse.com > >Hmm, maybe Krow will jump in and explain...it is easy to write the >redirect script - that is about one line...but I wonder if anyone has >implemented a rewriting of the urls in an apache module. the advantage to >that is > >- you don't have to touch your slash code, which makes >maintenance/upgrades easier >- it will work with non-slash code/html if it is part of your site Alex says: Hmmm. An interesting question. Although there is no example which does exactly what you want you could investigate the mod_rewrite module. In particular look for a reverse proxy example. You could quite easily set up your box to reverse proxy requests to other sites so that http://www.mysite.com/goto?http://www.somewherelse.com/something hits your box (mysite), and your box went and fetched the somewhereelse page. The client however doesn't get the redirect, but receives the page with a "ProxyPassReverse" translated page. URLs within the retrieved page would get translated so that they matched the above URL ... but only for the somewhereelse site. It is essentially this URL translation which you are asking for.... in order so that you don';t have to change your html or slashcode. In any event this is the sort of code you might need to look at so you might want to look for a mod_rewrite mailing list. Alternatively you could pay me to write such a module :-) Alex Openweb Analysts Ltd, London. Software For Complex Websites http://www.OWAL.co.uk/ Open Source Software Companies please register here http://www.OWAL.co.uk/oss_support/ |
From: i18n <i1...@ya...> - 2002-08-26 16:50:43
|
Alex, I am perfectly capable of writing it :) The redirect part is not the tricky part though.... mod-rewrite is something I considered, but if I understand correctly, that happens before Apache writes anything to the logs, and I wouldn't have a chance to do cool stuff with the knowledge that the rewrite occurred. (I did some mod_rewrite stuff during the peak of the nimda days particularly to make stuff not hit the logs) Also, on my site at least, the volume of these redirects is not going to be high, so I don't see much performance hit from accepting the request and redirecting them with a script, which is just about trivial. Yahoo does it - anyone know how? Obviously that is about as high volume as it gets.... That still leaves the more interesting question of how to generate the new urls on the outbound side... I will look at Brian's suggestions later.... Thanks! Barry At 05:36 PM 8/26/2002 +0100, Alex McLintock wrote: >>>On Friday 23 August 2002 06:25 pm, i18n wrote: >>>> Has anybody integrated a script which does a url redirect on outside links? >>>> I'd like to have a url something like >>>> www.mysite.com/goto?http://www.somewherelse.com >> >>Hmm, maybe Krow will jump in and explain...it is easy to write the redirect script - that is about one line...but I wonder if anyone has implemented a rewriting of the urls in an apache module. the advantage to that is >> >>- you don't have to touch your slash code, which makes maintenance/upgrades easier >>- it will work with non-slash code/html if it is part of your site > >Alex says: > >Hmmm. An interesting question. Although there is no example which does exactly what you want you could investigate the mod_rewrite module. In particular look for a reverse proxy example. > >You could quite easily set up your box to reverse proxy requests to other sites so that > >http://www.mysite.com/goto?http://www.somewherelse.com/something > >hits your box (mysite), and your box went and fetched the somewhereelse page. The client however doesn't get the redirect, but receives the page with a "ProxyPassReverse" translated page. URLs within the retrieved page would get translated so that they matched the above URL ... but only for the somewhereelse site. It is essentially this URL translation which you are asking for.... in order so that you don';t have to change your html or slashcode. > >In any event this is the sort of code you might need to look at so you might want to look for a mod_rewrite mailing list. > >Alternatively you could pay me to write such a module :-) > >Alex > > > > > >Openweb Analysts Ltd, London. >Software For Complex Websites http://www.OWAL.co.uk/ >Open Source Software Companies please register here http://www.OWAL.co.uk/oss_support/ > > > >------------------------------------------------------- >This sf.net email is sponsored by: OSDN - Tired of that same old >cell phone? Get a new here for FREE! >https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390 >_______________________________________________ >Slashcode-general mailing list >Sla...@li... >https://lists.sourceforge.net/lists/listinfo/slashcode-general |