Gå til innhold

Hvordan få til: index.php/ommeg


Anbefalte innlegg

Skrevet

Som titlen sier: Hvordan får man til sånn at det ser ut som en mappe i i fil... Hvis du skjønner? Har sett sider hvorman bruker det som et alternativ til mod_rewrite. Hvordan bruker man det eksemplet som står i titlen?

Videoannonse
Annonse
Skrevet

Prøv dette:

 

<?php

error_reporting(0);

$info=explode('/',$_SERVER[PATH_INFO]);

$filnavn=$info[1];

$filendelse='.php';

$include='inc/';

if(!$filnavn)

{

$filnavn='forside';

}

if(!eregi("^((.*)/)",$filnavn)&&(file_exists($filnavn.$filendelse)))

{

include$include.$filnavn.$filendelse;

}

else

{

include"404.php";

}

?>

Skrevet

Denne funker bra:

 

<?PHP
if (!isset($p)) { 
$p = "hovedsiden";
}
$incfile = "./inc/" . $p . ".php";
if (file_exists($incfile)) { 
include($incfile);
} else {
echo "Nothing here";
}	
?>

 

da blir linkene sånn:

<a href="index.php?p=om_meg">Om Meg</a>
<a href="index.php?p=bilder">Bilder</a>

 

Så legger du filene "bilder" og "om_meg" inn i ei mappe som du kaller "inc"!

Skrevet
Denne funker bra:

 

<?PHP
if (!isset($p)) { 
$p = "hovedsiden";
}
$incfile = "./inc/" . $p . ".php";
if (file_exists($incfile)) { 
include($incfile);
} else {
echo "Nothing here";
}	
?>

 

da blir linkene sånn:

<a href="index.php?p=om_meg">Om Meg</a>
<a href="index.php?p=bilder">Bilder</a>

 

Så legger du filene "bilder" og "om_meg" inn i ei mappe som du kaller "inc"!

Har det sånn nå!

Var ikke det jeg spurte om... :whistle:

Skrevet
<?php

error_reporting(0);

$info=explode('/',$_SERVER[PATH_INFO]);

$filnavn=$info[1];

$filendelse='.php';

$include='inc/';

if(!$filnavn)

{

$filnavn='forside';

}

if(!eregi("^((.*)/)",$filnavn)&&(file_exists($filnavn.$filendelse)))

{

include$include.$filnavn.$filendelse;

}

else

{

include"404.php";

}

?>

Lag en ommeg.php fil i en mappe som heter inc, så er det bare å åpne index.php/ommeg

Skrevet

Trengte bare:

$info=explode('/',$_SERVER[PATH_INFO]);

$filnavn=$info[1];

 

Men nå er det vansklig med menyen...

Når jeg er inn på index.php/ommeg og klikker en link som er "index.php/forside" så kommer jeg inn på "index.php/index.php/forside"...

Er den eneste måten å løse det på ved hjelp av full path?

Skrevet (endret)

Altså; php vil ikke kjøres med mindre webserveren vet at ting skal parses med php (f.eks filendelsen .php), dermed tror jeg du _må_ gjøre dette i webserveren på en eller annen måte. Enten det, eller så må du 'fake' det som står i adressefeltet på en eller annen måte.

Endret av geodrive
Skrevet
Altså; php vil ikke kjøres med mindre webserveren vet at ting skal parses med php (f.eks filendelsen .php), dermed tror jeg du _må_ gjøre dette i webserveren på en eller annen måte. Enten det, eller så må du 'fake' det som står i adressefeltet på en eller annen måte.

Hva mener du med det? Har testet denne "filendelsen" på localhost og den tror at det er en php fil pga .php, dessuten skal <?php kjøre som php uansettt på de fleste webservere ;)

Skrevet

Trådstarter: Hvorfor ikke bruke mod_rewrite? Mangler serveren støtte for det, eller klarer du ikke å formulere rewritereglene? Hvis det er det sistnevnte som er problemet, kan jeg gjerne skrive de reglene du trenger for deg. :)

Skrevet

Sorry for sent svar.

Egentlig ville jeg bare prøve det for å lære, her er hva jeg vil gjøre om til hva:

www.mittdomene.no/mappe/index.php?forside

skal bli til:

www.mittdomene.no/mappe/forside

 

Takk!

Skrevet
Hva mener du med det? Har testet denne "filendelsen" på localhost og den tror at det er en php fil pga .php, dessuten skal <?php kjøre som php uansettt på de fleste webservere ;)

Hm... Det hørtes merkelig ut. Men, dersom du har <?php tags i en .html fil, så vil det ikke parses av php, med mindre du har gitt serveren beskjed om at den skal bruke php på filer med .html endelser...

Mener det er slik på apache iallefall.

Skrevet
Hva mener du med det? Har testet denne "filendelsen" på localhost og den tror at det er en php fil pga .php, dessuten skal <?php kjøre som php uansettt på de fleste webservere ;)

Hm... Det hørtes merkelig ut. Men, dersom du har <?php tags i en .html fil, så vil det ikke parses av php, med mindre du har gitt serveren beskjed om at den skal bruke php på filer med .html endelser...

Mener det er slik på apache iallefall.

Korrekt. Du kan få PHP til å lete gjennom alle filer med den enkle Apache-kommandoen

AddType application/x-httpd-php .XXX

 

Du kan til og med tvinge PHP til å parse enkelte filer med ForceType (som har samme syntaks som funksjonen over, hvis jeg ikke husker feil).

Skrevet
Sorry for sent svar.

Egentlig ville jeg bare prøve det for å lære, her er hva jeg vil gjøre om til hva:

www.mittdomene.no/mappe/index.php?forside

skal bli til:

www.mittdomene.no/mappe/forside

 

Takk!

Med mod_rewrite er dette ingen sak.

 

RewriteEngine on
RewriteRule ^mappe/([^./]+)/?$ mappe/index.php?$1

 

;)

Skrevet

Som flere har nevnt, du må bruke mod_rewrite. Du må. Alt annet blir bare tåpelige hacks og uoversiktelig vissvass. Benytt rewrite-regler i htaccess-filer, så er ikke dette noe problem. Jeg tipper 90% eller flere av alle leverandører av webhotell i Norge støtter mod_rewrite.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...