Avatar billede jensenxp Novice
24. februar 2005 - 09:12 Der er 8 kommentarer og
1 løsning

Log via redirect i .htaccess

Jeg har hotel hos en der ikke statestik. Jeg har forsøgt at lave en /logs/log.php som laver log og redirecter til den indtastede url. Der skal redirectes undtagen når man kommer fra /logs/log.php.

Jeg har forsøgt med forskellige kombinationer af dette:

#############################################
RewriteEngine on
#RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !^http://mit-domæne.dk/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.mit-domæne.dk/.*$ [NC]
RewriteCond %{REQUEST_URI} !^/logs/log.php.*$
RewriteRule (.*) http://www.mit-domæne.dk/logs/log.php?s=%{REQUEST_URI} [R]
#############################################

Desværr ser det ud til at min header('Location .....') i /logs/log.php bliver redirigeret til sig selv så jeg ender med timeout samt en masse log linier :-(

Jeg har forsøgt at echo'e ud hvor /logs/log.php redirigere til og den gør det rigtigt, så det må være mine regler den er gal med.

Hjæææælp
Avatar billede sukos Juniormester
24. februar 2005 - 11:08 #1
Lyder lidt ulogisk?
Ville det ikke være bedre blot at include log.php, for at kunne lave "trafik-statistik"?
Avatar billede jensenxp Novice
24. februar 2005 - 11:56 #2
Umiddelbart jo, men da jeg gerne vil have statestik på "alt" også direkte links fra andre til f.eks billeder & lyd dur det jo ikke.
Avatar billede sukos Juniormester
24. februar 2005 - 12:18 #3
hmm, fanger Apache altid HTTP_REFERER? (hvilket jo ikke altid er tilfældet for PHP)
Hvis ikke, gør det jo ingen forskel om du bruger PHP eller ej.
Avatar billede jensenxp Novice
24. februar 2005 - 12:27 #4
Jeg er ligeglad med om det er php/perl eller VBS, de 3 sprog understøttes. Bare jeg kan lave en log uden at have adgang til Apaches egen log. Hvis du kender en anden vej til det vil jeg da blive glad for det også, desværre kan jeg ikke bruge LogFormat osv. kommandoer i .htaccess ellers var det jo let nok.
Avatar billede sukos Juniormester
24. februar 2005 - 12:44 #5
Jamen fanger Apache ALTID http_referer?
Det er jo den eneste mangel i PHP, hvis log.php skulle includes i stedet for.

Iøvrigt tager det jo kun 1 minut at definere et logformat til dit host, gemt på et sted hvor du får adgang til den, så det er da et lidt kedeligt web-host du har fået dig der.

Men OK, hvis de VIL have adgang til alt hvad der sker på deres server.............

Forresten, hvordan ser din redirect i log.php ud???
Avatar billede jensenxp Novice
24. februar 2005 - 12:59 #6
<?PHP
if( substr( $s, -1 ) == "/" )
    $s = substr( $s, strlen($s));

$fh = fopen( "access_log","a" );
if( $fh ) {
    fputs( $fh, date( "m-d H:m.s " . $_SERVER['REMOTE_ADDR'] . " " . $_SERVER['HTTP_REFERER'] . "\n" ));
    fclose($fh);
}
// hvis jeg fjerner kommentare så de 3 næste linier køres kan jeg se at den gør det forventede
//echo "$fh";
//echo "header( 'Location: http://www.mit-domæne.dk'." . $s.")";
//exit;
header( 'Location: http://www.mit-domæne.dk'.$s);

?>
Avatar billede jensenxp Novice
24. februar 2005 - 13:00 #7
jeg ved ikke om Apache altid fanger referer, men det ser sådan ud i min egen lokale Apache log fil fra min test server
Avatar billede rednex Nybegynder
23. marts 2005 - 12:10 #8
HTTP_REFERER er der kun hvis klienten sender det med. Det kan du ikke regne med.
Avatar billede jensenxp Novice
23. marts 2005 - 12:32 #9
Det er jeg klar over, men jeg vil også have log over direkte ankomne.

Jeg lukke da det ikke ser ud til at kunne løses :(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester