Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

redirect al de url kaal is

Pagina: 1
Acties:

  • RobbyTown
  • Registratie: April 2007
  • Niet online
Er zijn diverse domeintjes met submdomeintjes die op een index.php uitkomen met daaraan een uniek.

Voorbeeld
worst.site.nl/index.php?key=1234 (je krijgt een pagina te zien in Nederlands me result 1234)
wurst.site.de/index.php?key=3234 (je krijgt een pagina te zien in Duits me result 3234)

Alle subdomeintjes gaan naar dezelfde index. Nu heb je mensen erbij die die url weg halen en kijken wat er gebeurd als je dit doet wurst.site.de

De bedoelding is dat die dan naar redirect naar site.de nu zit mijn probleem omdat het al vanuit een index draait die redirect niet werkt, hij werkt wel maar hierdoor werk index.php?key=3234 systeem niet meer.

Als ik dit in de index.php plak en key= nu vanuit een andere php file werkte bv code.php?key= dan was het probleem er niet geweest.

Hoe of wat moet het dan worden om als er index.php in de url zit NIET redirect. Ik heb geen flauw idee.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php

$SiteNameURL = $_SERVER['HTTP_HOST'];

switch (strtolower($SiteNameURL)) {

    case "worst.site.nl": 
        header('Location: http://www.site.nl',TRUE,301);
        break;
    case "wurst.site.nl": 
        header('Location: http://www.site.de',TRUE,301);
        break;
    default:
        header('Location: http://www.site.com');
}

?>


Heb basename($_SERVER['SCRIPT_NAME']); al geprobeerd maar als ik worst.site.nl typt of worst.site.nl/index.php blijft hij index.php outputten.

Blog - Glasnet status (privé log) - Nette LAN - RIPE Atlas Probe


  • borft
  • Registratie: Januari 2002
  • Laatst online: 21-11 11:31
je moet na je header() een exit(); doen

  • RobbyTown
  • Registratie: April 2007
  • Niet online
borft schreef op woensdag 22 oktober 2014 @ 15:20:
je moet na je header() een exit(); doen
Heb ik gedaan maar hij redirect nog

Hieronder denk stukken duidelijker.

Redirect script zit in de index.php maar als men dit typt in de url

http://worst.site.nl = redirecten
http://worst.site.nl/index.php = niet redirecten

Ergens moet ik vertellen als het index.php of index.php?key=1234 is NIET redirecten. Geen flauw idee hoe.

Blog - Glasnet status (privé log) - Nette LAN - RIPE Atlas Probe


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22:57
Ik vind het maar een vaag verhaal. Je kunt toch gewoon kijken of de key parameter meegegeven wordt? Zo niet, redirect naar de juiste homepage. Zo ja, pagina serveren.

  • Donool
  • Registratie: April 2010
  • Laatst online: 20-11 16:12
Je kan dan toch gewoon een isset op die key=1234 doen? Dan is je 2e probleem verholpen denk ik. Verder begrijp ik het probleem van het index.php weghalen nogsteeds niet helemaal..

  • TheNameless
  • Registratie: September 2001
  • Laatst online: 07-02 21:38

TheNameless

Jazzballet is vet!

Ken PHP niet, maar ik kan me voorstellen dat je als je naar http://worst.site.nl/ gaat, je ook gewoon op index.php uit komt.

Je moet dus onderscheid maken tussen het script wat er draait (via $_SERVER['SCRIPT_NAME']) en de url waar de gebruiker op zit. De mapping url <> script is namelijk niet een op een.

Ducati: making mechanics out of riders since 1946


  • RobbyTown
  • Registratie: April 2007
  • Niet online
Mijn probleem is als de url kaal word gemaakt (handmatig) dat je dan niet op een dode pagina uitkomt maar word geforward. Nu heb ik dat gefixt met mijn bovenstaande code echter forward hij nu alles en dat moet niet.

worst.site.nl/index.php?key=1234 gaat hij al redirecten (door mijn code, haal ik mijn code weg krijg ik als result 1234 wat ook moet). Daar zit nu het probleem dat moet dus niet.

Stel er gaat een bozoeker wat bewerken
worst.site.nl/index.php?key=1234
die maarkt er worst.site.nl/index.php van of worst.site.nl/ dan moet hij worden geforward.

Blog - Glasnet status (privé log) - Nette LAN - RIPE Atlas Probe


  • Donool
  • Registratie: April 2010
  • Laatst online: 20-11 16:12
Als je dan if(isset($_GET['key']) && is_numeric($_GET['key'])) { je switch } else { redirect(); } zou doen is het probleem toch opgelost?

(snel voorbeeldje)

[ Voor 7% gewijzigd door Donool op 22-10-2014 16:31 . Reden: typo ]


  • Sneezydevil
  • Registratie: Januari 2002
  • Laatst online: 29-09 10:22
Kijk eens naar $_SERVER['REQUEST_URI'] ipv SCRIPT_NAME .

Ook al snap ik je probleem niet en zou ik zoals Soultaker en Donool al aangaven kijken of die key gevuld is.

  • RobbyTown
  • Registratie: April 2007
  • Niet online
Thnx voor de tips. Knutsel even verder.

Blog - Glasnet status (privé log) - Nette LAN - RIPE Atlas Probe


  • Cartman!
  • Registratie: April 2000
  • Niet online
borft schreef op woensdag 22 oktober 2014 @ 15:20:
je moet na je header() een exit(); doen
Alleen als je daarna daadwerkelijk nog code zou uitvoeren. Bovendien is het handig even te vermelden waarom die exit/die meestal nodig is dus dat doe ik dan maar even: als een client besluit de header te negeren dan zou de client eventueel toegang krijgen tot de resultaten die eronder nog geserveerd worden terwijl je dat niet wil.

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Cartman! schreef op woensdag 22 oktober 2014 @ 20:52:
[...]

Alleen als je daarna daadwerkelijk nog code zou uitvoeren. Bovendien is het handig even te vermelden waarom die exit/die meestal nodig is dus dat doe ik dan maar even: als een client besluit de header te negeren dan zou de client eventueel toegang krijgen tot de resultaten die eronder nog geserveerd worden terwijl je dat niet wil.
Plus dat het gewoon good practice is omdat het ook de server-verwerking stopzet.

Zonder de exit/die wordt de rest van de code nog wel op de server uitgevoerd ook al doet een normaal ingestelde client er niets meer mee.

Zo heb ik weleens constructies gezien dat ze bovenin met if-jes bepaalden of je weg moest gaan of niet van die pagina om daarna (als de bezoeker niet in de if-jes terechtkwam) een zwaar script te runnen.
De gedachte was leuk maar de uitvoering was dat de bezoeker weggestuurd werd en het script werd gedraaid waardoor er op een gegeven een DOS werd gedraaid vanuit het eigen script...
Pagina: 1