Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

Meerdere domeinen afhandelen verschillende content zien

Pagina: 1
Acties:

Vraag


  • RobbyTown
  • Registratie: april 2007
  • Laatst online: 03:01
Onderwerp werd te lang, betreft dus PHP

Nu kan ik wel iets van php maar ik vraag mij af als het nog korter en beter kan.

Het gaat om het volgende verschillende domeintjes komen op hetzelfde uit maar moeten eigenlijk verschillende content laten zien zonder forward.

Normaal zou virtualhost een/de oplossing zijn maar dat is niet de bedoeling ik wil het via php afhandelen.

Momenteel heb ik dit, ik vraag mij af als het netter en beter kan. Voorbeeld www heb ik er nu ook bij getypt anders werkt het niet als je met www naar het domein gaat. Is dit de kortste code of kan het nog korter?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php 
$domain = $_SERVER['HTTP_HOST'];
if ($domain == "mijnip-tje.nl" || $domain == "www.mijnip-tje.nl") 
{
 echo $_SERVER['REMOTE_ADDR']; ?>
<?php } else if ($domain == "fanvantweakers.nl" || $domain == "www.fanvantweakers.nl") { ?>
Hey hallo! Ik ben fan van Tweakers jij ook?
<?php } else if ($domain == "vorkje.nl" || $domain == "www.vorkje.nl") { ?>
<img border="0" src="vorkje.jpg" />
<?php
}
?>

Beste antwoord (via RobbyTown op 13-02-2021 09:25)


  • Mr. HTTP
  • Registratie: november 2020
  • Laatst online: 20-06 17:00
Switch statement gebruiken en per applicatie endpoint (switch context met 1 of meerdere domeinnamen) een $applicatie_id toewijzen en dat hergebruiken zodat je non-matches kan afvangen en niet met templating bezig bent tussen je logic. Snappen dat de Host header field (HTTP_HOST) niet altijd alleen een domeinnaam hoeft te zijn aangezien de syntax
code:
1
 host[:port]
* is. De Host header field kan ook worden weggelaten wat in bijv. nginx dan wordt opgepikt door de default server.
Daarom de port syntax vroegtijdig wegfilteren (of valideren en splitten op :), host waarde eventueel lowercase maken voor de vage requests aangezien host case-insensitive is... Regex gebruiken is niet nodig, string compares zijn goedkoper en je wilt meestal in je domain routing logic heel concreet zijn over wat een entrypoint is en wat niet.
Beter ook niet $_SERVER direct aanspreken maar filter_input gebruiken.

Volgens mij heb ik zo alles gehad ;)
Dus nee het kan niet korter, wel beter... (of gewoon een framework gebruiken)

*
code:
1
host = ipv4 | [ipv6] | domain name | host name

[Voor 62% gewijzigd door Mr. HTTP op 11-02-2021 22:01]

Alle reacties


  • Daos
  • Registratie: oktober 2004
  • Niet online
Je kan in php elseif aan elkaar vast schrijven :+

  • Webgnome
  • Registratie: maart 2001
  • Nu online
waarom wil je dit in php regelen? Je zou een regex kunnen gebruiken om die www. eruit te halen maar of het daar korter van word?

[Voor 59% gewijzigd door Webgnome op 11-02-2021 21:36]

Strava, Twitter


Acties:
  • Beste antwoord
  • 0Henk 'm!

  • Mr. HTTP
  • Registratie: november 2020
  • Laatst online: 20-06 17:00
Switch statement gebruiken en per applicatie endpoint (switch context met 1 of meerdere domeinnamen) een $applicatie_id toewijzen en dat hergebruiken zodat je non-matches kan afvangen en niet met templating bezig bent tussen je logic. Snappen dat de Host header field (HTTP_HOST) niet altijd alleen een domeinnaam hoeft te zijn aangezien de syntax
code:
1
 host[:port]
* is. De Host header field kan ook worden weggelaten wat in bijv. nginx dan wordt opgepikt door de default server.
Daarom de port syntax vroegtijdig wegfilteren (of valideren en splitten op :), host waarde eventueel lowercase maken voor de vage requests aangezien host case-insensitive is... Regex gebruiken is niet nodig, string compares zijn goedkoper en je wilt meestal in je domain routing logic heel concreet zijn over wat een entrypoint is en wat niet.
Beter ook niet $_SERVER direct aanspreken maar filter_input gebruiken.

Volgens mij heb ik zo alles gehad ;)
Dus nee het kan niet korter, wel beter... (of gewoon een framework gebruiken)

*
code:
1
host = ipv4 | [ipv6] | domain name | host name

[Voor 62% gewijzigd door Mr. HTTP op 11-02-2021 22:01]


  • RobIII
  • Registratie: december 2001
  • Laatst online: 01:14

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Waarom doe je dit überhaupt in PHP en niet in je webserver (Apache/NGinx/...) of in je rewrite rules?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • Webgnome
  • Registratie: maart 2001
  • Nu online
omdat het kan? denk ik ..

Strava, Twitter


  • RobbyTown
  • Registratie: april 2007
  • Laatst online: 03:01
Omdat ik een beetje kennis heb van PHP en het niet al te complex moet gaan worden zo kort en simpel mogelijk zonder server config aanpassingen. Liefst in 1 file en omdat het kan.

Had gevonden dat het ook rewrite kon maar dan krijg ik meerdere bestanden. Dat wil ik nou net niet. Dus daarom het zou in PHP moeten kunnen.
https://stackoverflow.com...g-pages-on-another-domain

  • Janoz
  • Registratie: oktober 2000
  • Laatst online: 23:31

Janoz

Moderator Devschuur®

!litemod

Wat is je aversie tegen meerdere bestanden? Zou ik je originele voorstel omzetten dan zou je van:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php 
$domain = $_SERVER['HTTP_HOST'];
if ($domain == "mijnip-tje.nl" || $domain == "www.mijnip-tje.nl") 
{
 echo $_SERVER['REMOTE_ADDR']; ?>
<?php } else if ($domain == "fanvantweakers.nl" || $domain == "www.fanvantweakers.nl") { ?>
Hey hallo! Ik ben fan van Tweakers jij ook?
<?php } else if ($domain == "vorkje.nl" || $domain == "www.vorkje.nl") { ?>
<img border="0" src="vorkje.jpg" />
<?php
}
?>

Naar
code:
1
Hey hallo! Ik ben fan van Tweakers jij ook?

en
code:
1
<img border="0" src="vorkje.jpg" />

en een stukje serverconfig.

Persoonlijk vind ik meerdere bestanden, waarbij elk hun eigen doel heeft, een stuk duidelijker dan alle 3 de doelen verweven in 1 bestand. Maar ik vermoed dat het voorbeeldje niet representatrief is.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Webgnome
  • Registratie: maart 2001
  • Nu online
@Janoz daarboven komt ook nog dat het nu om 2 domeinen gaat. Wat nu als het om 10 , 20 , 30 of misschien zelfs 100 domeinen gaat? Ga je die allemaal met de hand in dat bestandje zetten? Of doe je een copy / past van een originele config en pas je die file aan.

Anyways , ik denk dat de vraag van de TS wel beantwoord is. Je kunt het op veel manieren oplossen maar de manier die in de TS staat zit al redelijk dicht tegen 'de juiste' manier aan als je het via PHP wil doen

[Voor 28% gewijzigd door Webgnome op 12-02-2021 09:33]

Strava, Twitter

Pagina: 1


Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Microsoft Xbox Series X LG CX Google Pixel 5a 5G Sony XH90 / XH92 Samsung Galaxy S21 5G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True