Gå til innhold

Hvordan få /side1 istedenfor /?target=side1


Anbefalte innlegg

Videoannonse
Annonse

Hvis jeg f.eks. skal linke til DivX-guiden min, så blir URL-en http://mittdomene.net/?target=divx/divx5-guide

 

Jeg vil ha det på formen http://mittdomene.net/divx/divx5-guide , men vet ikke om det er mulig uten altfor mye stress..

 

<?php



/* hvis ikke variabelen $target ("?target=...") finnes, lager vi den, og setter den til å være tom */

if (isset($HTTP_GET_VARS['target'])) {

 $target = $HTTP_GET_VARS['target'];

}

else {

 $target = "";

}



/* fjerner eventuelle skråstreker, som bare er tatt med av kosmetiske årsaker, i slutten av adressen */

$target = substr($target, 0, strlen($target) - strspn(strrev($target), "/"));



/* hvis ikke adressen viser til en eksisterende side, lar vi den i stedet vise til hovedsiden */

if (!file_exists("data/$target.inc")) {

 $target = "hovedside";

}



?>

Lenke til kommentar

Tvangsgreie; hvor finner jeg eventuelt dette og kan du vennligst forklare litt mer utdypende? Jeg skjønte lite..

 

Egil.B; hardlinker? Eksempel på bruk av link slik siden er nå..;

 

Bilder av PC-en ligger under <a href="index.php?target=data/pc/casemod/">Casemod</a>

 

Jeg vil egentlig bare vite hva som må til for å få linker på formen http://mittdomene/side1

Er det bare dumt og tungvint?

Lenke til kommentar
Tvangsgreie; hvor finner jeg eventuelt dette og kan du vennligst forklare litt mer utdypende? Jeg skjønte lite..

Det er litt mye stress å forklare om du uansett ikke kan redigere httpd.conf. Den ligger i /etc/apache/conf eller /etc/httpd/conf. Om du kan redigere den, skal jeg forsøke å gi noen eksempler. Iom at ikke du kommer inn med telnet eller SSH, og det er et billig-webhotell tviler jeg desverre litt på at du kan gjøre det.

Jeg vil egentlig bare vite hva som må til for å få linker på formen http://mittdomene/side1

Er det bare dumt og tungvint?

I utgangspunktet er det fornuftig å ha dem i formatet som ser ut som kataloger, siden søkemaskiner f.eks. ikke følger lenker som ligger i dynamiske sider (/?target=side1 i stedet for /side1). Dessuten er det jo lettere å forklare på telefon.

Lenke til kommentar

Poenget havegg prøver å få frem er som følger;

 

Eksempel:

Vet ikke om jeg har forstaat helt hva du er ute etter, men dette kan kanskje hjelpe deghttp://php.senteret.net/index.php?side=switch

 

Legg merke til URLen; index.php?side=switch. GET-variabelen "side" settes til "switch" og index.php kan gjøre hva enn den måtte ønske med denne informasjonen.

 

I havegg sitt tilfelle inneholder index.php et fast design med et fast, avsatt område til spesifikk informasjon som varierer avhengig av hvilken verdi denne "side"-variabelen måtte ha. Det brukes ingen database, så denne "spesifikke informasjonen" er ganske enkelt bare HTML som inkluderes fra ei fil. Dersom side=divx inkluderes fila data/divx.inc, og er f. eks. side=data/pc/skjermkort inkluderes fila data/data/pc/skjermkort.inc.

 

Dersom havegg skal gi noen en link til en bestemt underside på nettsida si, vil det pr. nå måtte bli på formen (1) http://.../?side=data/pc/. Det han ønsker er å kunne gi en link til den samme undersiden på formen (2) http://.../data/pc/.

 

I (1) er det index.php, plassert i rot-mappa, som blir kalt opp. I (2) er det ei index-fil i data/pc/ som blir kalt opp. Siden designet ligger i index.php i rot-mappa, må alt før eller senere gå via denne. For å oppnå (2) med basis i (1) ville det være mulig å plassere ei index-fil i data/pc/ som viderekobler til index.php?side=data/pc plassert i rot-mappa. Dette måtte i tilfelle gjøres for samtlige undersider på nettsida hans, og virker fryktelig tungvint..

 

Det som f. eks. hadde vært mye enklere hadde vært om http://.../data/pc/ automatisk hadde blitt viderekoblet til http://.../?side=data/pc. Dersom han hadde hatt sin egen httpd kunne han sikkert fått dette til greit, men siden dette ikke er tilfelle er spørsmålet om det er mulig å få til vha. PHP.

 

Nå?

Lenke til kommentar
Hmm... hva med .htaccess? Er det noe spesielt med rewrite modulen som gjør at denne ikke kan brukes? (Har aldri brukt rewrite selv)

Jeg vet ikke helt hvordan du har tenkt å bruke htaccess i dette tilfellet. mod_rewrite gjør at apache konverterer f.eks et kall til /side1 til /?target=side1, uten at det trenger å finnes noe katalog eller fil som heter side1 i rotkatalogen på serveren. Det kan gjøre ting litt enklere å vedlikeholde.

Lenke til kommentar

T.d. for å få mappa http://www.mittdomene.com/divx/ til å omdirigere til http://www.mittdomene.com/index.php?side=divx, kan du gjere følgande; opprett fila index.php i /divx-katalogen. I den fila skriv du følgande (og kun følgande, pass på ekstra mellomrom før <?php og etter ?>);

 

<?php

 header('Location: http://www.mittdomene.com/index.php?side=divx');

?>

 

Dette kan du gjere for kvar "kategori" du ønsker å omdirigere på denne måten. Pass på stor L i "Location", dette er svært viktig, viss ikkje kan enkelte browsarar feiltolke det.

 

Det er sikkert ein måte å trekke ut namnet på sida frå katalognamnet, men det får vere eit prosjekt til ein annan gong.

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...