Gå til innhold

[Løst] .htaccess / php?


Anbefalte innlegg

Hei.

 

Jeg er litt usikker på hvor denne tråden skal hen. Men har en hjemmeside som består av masse forskjellige php filer. Skulle gjerne hatt tak i et like script som gjør følgene om noen kunne hjelpe.

 

 

URL idag:

http://minside.no/index.php

http://minside.no/mappe1/merkelig.php

 

jeg skulle gjerne hatt kun mappenavnet til å vises og hente filnavnet via get. Vet ikke om alt kan gjøres i htaccess eller det må deles opp?

 

ny url:

http://minside.no/ || http://minside.no/?id=index

http://minside.no/mappe1/?id=merkelig

 

 

om dere skjønner?

Lenke til kommentar
Videoannonse
Annonse

Bruk GET for å hente id'en fra url'en inn i en php variabel, og bruk en if-setning for å inkludere filen med innholdet.

 

<?php
$id = $_GET["id"];

if($id=='merkelig') { include('merkelig.php'); }
elseif($id=='url') { include('url.php'); }
else { include('main.php') };
?>

 

Edit: (Glemte å nevne at det er mulig å gjøre via htaccess også, men da blir url-strukturen din noe annerledes. Feks http://domene.no/merkelig kunne pekt til http://domene.no/index.php?id=merkelig)

Endret av magnusalex
Lenke til kommentar

Men f.eks.

 

Om jeg fjerner defaultindex i .htaccess, er det da mulig å gjøre dette i htaccess?

 

<?php

$id = $_GET['id];

if ($id){

include $id . ".php";

} else {

include "index.php"; }

?>

 

slik at jeg ikke må ha en index.php fil for dette i hver folder?

Lenke til kommentar

Nei. Bare skriv den riktige stien til hver enkelt fil i if-setningen, så vil koden jeg postet i første innlegg fungere "rett ut av boksen".

 

<?php
$id = $_GET["id"];

if($id=='merkelig') { include('merkelig/merkelig.php'); }
elseif($id=='url') { include('merkelig/url.php'); }
else { include('main.php') };
?>

Endret av magnusalex
Lenke til kommentar

hei,

 

kanskje ikke beste løsningen, men prøv å sett det i et frameset med blanding av php.

Ikke beste løsningen, men funker :)

 

 

<?php
$id = $_GET['id];
if ($id){
switch ($id) {
   case upload:
    $url = "upload/index.php";	
    break;
case files:
    $url = "upload/files/index.php";	
    break;
   default:
    $url = $id . ".php";
    break;
}
} else {
header("Location: http://www.google.com");  }
?>
<html><head>
<title>Promote-IT</title>
<script language="JavaScript">
if(top.frames.length > 0)
top.location.href=self.location;
</script>
</head>
<frameset rows="100%,*" frameborder="NO" border="0" framespacing="0">
<frame name="conr_main_frame" src="<?php echo $url; ?>">
</frameset>
<noframes>
<body>
</body>
</noframes>
</html>

 

Testet dette og det funker fint.

Som du ser la opp et par "caser" om du ønsker å benytte det.

slik at har du en egen folder for filer, musikk, what ever kan du benytte en bestemt id som vil ta det rett dit, finnes ikke id'en i case listen så vil den automatisk benytte $id.php

dersom id IKKE er angitt så vil den ta deg til main.php :)

 

Er ikke nødvendig med folder/index.php om php ligger i apache eller htaccess, men det får du sjekke opp hos deg. Om det ikke er satt opp indexering så kan du skrive følgene i .htaccess;

 

DirectoryIndex index.html index.php index.htm

Dette vil sette index.html, index.php og index.htm som default :) dersom ingen av disse finnes i mappen vil du møte 404 :) Den vil forresten sjekke html først, deretter php avhenging av hvilken rekkefølge du har satt de opp i

Endret av TobiasG
Lenke til kommentar

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...