Toon posts:

Met apache/php alles redirecten wat niet via hoofdpagina

Pagina: 1
Acties:
  • 407 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoi,

Ik probeer het rechtstreeks linken van subpagina's op mijn website tegen te gaan.
Dus www.mijndomein.nl/pagina.php wil ik automatisch redirecten naar www.mijndomein.nl, behalve als de eerder genoemde pagina vanaf www.mijndomein.nl wordt opgevraagd.

Ik heb al gegoogled en op GOT gekeken, maar kan hiervoor geen oplossing vinden |:(.

De reden dat ik dit wil is om er voor te zorgen dat altijd de contactgegevens enz. te vinden zijn, ook voor bezoekers die rechtstreeks naar een subpagina linken.

Graag zie ik jullie oplossingen tegemoet! _/-\o_

  • BlaTieBla
  • Registratie: November 2000
  • Laatst online: 17:23

BlaTieBla

Vloeken En Raak Schieten

De referer check gebruiken lijkt me.
Als de referer niet jouw domein bevat, dan redirect naar de index pagina (ofzo)

leica - zeiss - fuji - apple | PSN = Sh4m1n0


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Gewoon checken of in de refferer www.mijndomein.nl voorkomt, zo niet dan naar de hoofdpagina.

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 16:31

Pelle

🚴‍♂️

PHP:
1
print $_SERVER['HTTP_REFERER'];

[ Voor 14% gewijzigd door Pelle op 22-09-2004 11:26 ]


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:53
Niet alle browsers sturen toch de referer door, net zoals norton software e.d.?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 20:59

crisp

Devver

Pixelated

djluc schreef op 22 september 2004 @ 11:31:
Niet alle browsers sturen toch de referer door, net zoals norton software e.d.?
Dat klopt, dus je zal inderdaad mensen buiten gaan sluiten...

Intentionally left blank


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 14:15
Waarom zou je dat willen??
Naja:
PHP:
1
2
if (!strpos($_SERVER["HTTP_REFERRER"],$_SERVER["HTTP_HOST"])) 
  { header('location:' .$_SERVER["HTTP_HOST"]); }

boven elke pagina.

Edit:
crisp schreef op 22 september 2004 @ 11:32:
[...]

Dat klopt, dus je zal inderdaad mensen buiten gaan sluiten...
Dan check je eerst of er wel een referrer wordt meegestuurd en redirect je alleen als dat wel het geval is...

[ Voor 65% gewijzigd door T-MOB op 22-09-2004 11:37 . Reden: layout, fouten.. ;) ]

Regeren is vooruitschuiven


Verwijderd

Of d.m.v. GET/POST/SESSION bijhouden of de hoofdpagina al bezocht is.

-> www.php.net

Verwijderd

Topicstarter
T-MOB.

Je scriptje werkt niet :
De HTTP_REFERRER was fout geschreven, maar dat lost niets op. (het is HTTP_REFERER met enkele R).

<?
if (!strpos($_SERVER["HTTP_REFERER"],$_SERVER["HTTP_HOST"]))
{ header('location:' .$_SERVER["HTTP_HOST"]); }
?>

Ik krijg de volgende melding :

Warning: Cannot add header information - headers already sent by (output started at /var/websites/pagina.php:4) in /var/websites/pagina.php on line 33

Ik heb de afzonderlijke variabelen $_SERVER["HTTP_REFERER"] en $_SERVER["HTTP_HOST"] later printen en dat werkt gewoon, de referer geeft de website waarvanaf doorgelinkt wordt en de host geeft mijn domain.

Hopenlijk kunnen jullie dit voor me oplossen, alvast bedankt.

Michel.

  • Sharky
  • Registratie: September 1999
  • Laatst online: 08:37

Sharky

Skamn Dippy!

misschien moet je in je php.ini instellen je script eerst gebufferd moet worden en dan verwerkt. Dan hoef je bijv met cookies ook niet alles bovenaan de pagina te zetten.

This too shall pass


Verwijderd

Er mag geen output voor een header zitten, dus als je eerst iets echoëd en daarna een header doorgeeft werkt het niet.

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 22-05 23:10

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Dit is wel een basic melding zeg :/ Zoals 10.000 topics je kunnen vertellen, betekent dit dat PHP al iets (spatie, tekst etc) heeft geoutput, terwijl dit bij headers/cookies/etc niet mag.

Overigens zou ik dit doen:

PHP:
1
2
3
4
5
6
7
if( strlen( $_SERVER['HTTP_REFERER'] ) > 0 )
{
    if( ! strstr($_SERVER['HTTP_REFERER'], 'mijndomein.nl') )
    {
        die('crisp is liev O+ en deeplinken mag niet :Y)');
    }
}

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 14:15
Verwijderd schreef op 22 september 2004 @ 12:31:
T-MOB.

Je scriptje werkt niet :
De HTTP_REFERRER was fout geschreven, maar dat lost niets op. (het is HTTP_REFERER met enkele R).
Je hebt gelijk, sorry voor de typo :) . Had het gecopy-paste uit een script waar ik al een $REFERRER aanmaak. De 'header' funcie moet aangeroepen worden voordat er ook maar iets ge-output wordt (zie ^^). Als dat niet mogelijk is dan kun je beter het script stoppen met een ode aan Crisp ;) .

offtopic:
Als je trouwens netjes code blokken wilt maken dan kun je [code]-tags gebruiken. [code=php] voor PHP syntaxhighlighting.

Regeren is vooruitschuiven


Verwijderd

Dus jij wordt liever niet geindexeerd?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 20:59

crisp

Devver

Pixelated

T-MOB schreef op 22 september 2004 @ 11:32:
[...]

Dan check je eerst of er wel een referrer wordt meegestuurd en redirect je alleen als dat wel het geval is...
Tsja, dan heb je ook nog gevalletjes NIS bijvoorbeeld:
PHP:
1
echo $_SERVER['HTTP_REFERER']; // 'Referrer has been blocked by Norton'

Je moet maar eens op een grote site referrers gaan loggen en kijken wat je allemaal al niet tegenkomt ;)

[ Voor 18% gewijzigd door crisp op 22-09-2004 21:49 ]

Intentionally left blank

Pagina: 1