Toon posts:

[PHP] Include en relative/absolute paths

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dag allemaal,

Het is een heel gedoe om via mijn hosting provider subdomeinen aan te vragen, dus bedacht ik me dat er vast wel een PHP-mouw aan te passen was. En inderdaad: ik heb gezien dat het kan. Ik loop echter wel steeds tegen een probleem aan.

Op de webserver (Apache) heb ik index.php staan met de volgende inhoud:
code:
1
2
3
4
5
6
<?php
if ($HTTP_HOST == "party.rachid.nl") {
        include './party/index.html';
    } else {
    include 'http://www.rachid.nl/homeindex.html';
}?>
Inderdaad: zodra ik party.rachid.nl intyp in m'n browser, zie ik de html-pagina die staat opgeslagen in ./party. Als ik m'n browser naar een ander subdomein stuur kom ik gewoon uit bij homeindex.html.

So far so good, maar hier komt het probleem om de hoek kijken: als ik naar party.rachid.nl surf, worden de images niet gevonden. Stel dat in ./party/index.html wordt verwezen naar "plaatje1.gif", dan wordt dat absoluut gezien "http://rachid.nl/plaatje1.gif" en niet "http://rachid.nl/party/plaatje1.gif".

Okay, natuurlijk kan ik elke html-pagina voorzien van absolute paths, maar dat moet toch ook anders kunnen? De vraag is dus: hoe kan ik ervoor zorgen dat ik de relative paths ondanks dit scriptje kan blijven gebruiken? Of vraag ik nu iets onmogelijks?


Groetjes,

rachid.nl

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 11:34

TeeDee

CQB 241

ken geen php maar denkwijze: :)

als http_host == party.rachid.nl
voeg /party/ toe aan de img_src

Daar is vast wel iets van te brouwen toch?

p.s: Tweakers groeten elkaar niet, staat ergens in de faq :+

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

kun je het nog dynamisc maken ook, aangezien de subdomeinnaam en de directory waarschijnlijk altijd hetzelfde zullen zijn ;)

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 11:34

TeeDee

CQB 241

altijd baas boven baas he :+

Heart..pumps blood.Has nothing to do with emotion! Bored


  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Redirect je 404's naar een php scriptje. Daar check je de Request en de Referer. Als het om een plaatje gaat en je referer komt van dat subdomein, dan doe je een header('Location: ...') naar de juiste locatie... Wat je met de rest doet mag je zelf weten :) Verder moet je ook opletten dat je niet in een oneindige lus terecht komt wanneer er bv een plaatje wordt opgevraagd wat zowieso niet bestaat..

On track


Verwijderd

Als je ipv een include gewoon een redirect naar de juiste pagina doet moet alles als een zonnetje werken.

HTH :)

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 09:21
PHP:
1
2
3
4
5
6
7
<?php
if ($HTTP_HOST == "party.rachid.nl") {
    echo('<META HTTP-EQUIV="refresh" CONTENT="0;URL=/party/index.html">)';
    } else {
    echo('<META HTTP-EQUIV="refresh" CONTENT="0;URL=http://www.rachid.nl/homeindex.html">');    
   }
?>


this should do the work

Sometimes you need to plan for coincidence


  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
beter lijkt me dan:
PHP:
1
2
3
4
5
6
7
8
if ($HTTP_HOST == "party.rachid.nl")
{
    header('Location: /party/index.html');
}
else
{
    header('Location: http://www.rachid.nl/homeindex.html');
}


nog afgezien van het gebruik van oldstyle envs ipv superglobals

Pas de replâtrage, la structure est pourrie.


  • CTVirus
  • Registratie: Januari 2000
  • Laatst online: 26-08 14:37

CTVirus

Dexterslab FAN

HHmmm, misschien niet de mooiste oplossing maar het is er wel één, je maakt twee frames (1 onzichtbaar de papa) die afhankelijk van de $HTTP_HOST een kindje heeft. De link in de adres balk is dan nog steeds party.rachid.nl , maar de echte link in het frame is gewoon: www.rachid.nl/party.

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 09:21
Apollo_Futurae schreef op 08 oktober 2002 @ 21:25:
beter lijkt me dan:
PHP:
1
2
3
4
5
6
7
8
if ($HTTP_HOST == "party.rachid.nl")
{
    header('Location: /party/index.html');
}
else
{
    header('Location: http://www.rachid.nl/homeindex.html');
}


nog afgezien van het gebruik van oldstyle envs ipv superglobals
dit is inderdaad een betere oplossing, maar dat kon ik neit gebruiken in mijn eigen scripts omdat de headers allemaal al verstuurd waren, maar hier is dat inderdaad de netste oplossing...

Sometimes you need to plan for coincidence

Pagina: 1