Avatar billede zyph Nybegynder
19. september 2004 - 13:01 Der er 16 kommentarer og
1 løsning

domæne.dk/side/underside?

Jeg vil gerne gøre det muligt at bruge en URL lig domæne.dk/side/underside.

Hvis jeg skriver domæne.dk/side bliver side.php includet.

side.php og alle mine andre sider (ikke design) ligger i en mappe kaldet includes, det vil sige at:

domæne.dk/side = domæne.dk/includes/side.php egentlig.

Hvis jeg så vil have en underside på, hvordan opnår jeg så:

domæne.dk/side/underside = domæne.dk/includes/side/underside.php
?
Avatar billede htm Nybegynder
19. september 2004 - 13:12 #1
Du skal have gang i noget mod_rewrite. Det kræver at du bruger en apache server og har adgang til at bruge mod_rewrite.

Den nemmeste løsning er følgende mod_rewrite, og så bruge php til at includere din side med:

Smid dette i en fil og kald den .htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^(.*)$  /index.php?side=$1

så vil den lave http://www.domain.dk/hej/med/dig om til http://www.domain.dk/index.php?side=hej/med/dig. og så $_GET['side'] vil indeholde "hej/med/dig"

Du vil dog ikke kunne se dette i adresselinien, men stadig den adresse du skrev :)

Håber du kan bruge det.
Avatar billede zyph Nybegynder
19. september 2004 - 13:43 #2
Mange tak :) Jeg vil dog gerne slippe for ?side=, og det har jeg jo os gjort som det er nu. Min side kan forresten ses på http://zyph.dk hvis det er til nogen hjælp :)

Som det er nu bruger jeg følgende i min .htaccess:

ErrorDocument 404 /404.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^(.*)$ index.php?p=$1&%{QUERY_STRING}

Jeg har fået hjælp til det, for jeg forstår ingenting af syntaksen i det der, men det virker.

Hmm, er ret forvirret lige nu :] Undersiden skulle meget gerne ligge i en mappe, som hedder det samme som oversiden.
Avatar billede htm Nybegynder
19. september 2004 - 13:52 #3
Det er faktisk det samme princip du har i det eks. der.

eneste forskel er at den tager din QUERY STRING med - så du kunne skrive /news/?nyvar=hej . men ville du løses nemmere med:

RewriteRule ^(.*)$ index.php?p=$1 [QSA]

Så du har allerede grundstenen i det :) så kan du bare styre det med php.. :)

Afhængig af hvordan du har lavet det nu er det ikke ret meget anderledes end nu.
Avatar billede zyph Nybegynder
19. september 2004 - 16:25 #4
Hm, du må undskylde meget, men jeg forstår det ikke rigtigt.

Hvis jeg tager hejsa.dk/artikler med det htaccess jeg har nu, så bliver artikler på en eller anden mærkelig måde puttet ned i $p.

Hvis jeg så har hejsa.dk/artikler/enartikel - Kan jeg så få det ned i en anden variabel, eller hvordan?
Avatar billede htm Nybegynder
19. september 2004 - 16:38 #5
Hvis jeg så har hejsa.dk/artikler/enartikel - så er p=artikler/enartikel

Er det det du vil eller hva? nu er det mig der ikke forstår :) du kan sagtnes få det i en anden variabel hvis det er det du vil..
Avatar billede zyph Nybegynder
19. september 2004 - 16:45 #6
Hehe, jeg vil ikke have det på en bestemt måde, bare den mest simple (og lette).

Eneste krav er, at min underside skal ligge i en mappe der hedder det samme som oversiden, hvis du forstår?
Avatar billede htm Nybegynder
20. september 2004 - 15:58 #7
He he - selvfølgelig har jeg lyst til at hjælpe, det har bare knebet lidt med tiden :)

jeg laver lige et eks. til dig.
Avatar billede htm Nybegynder
20. september 2004 - 16:14 #8
Et lille eks.

Jeg bruger denne .htaccess:
--------------------------------------------
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^(.*)$  /index.php?p=$1 [QSA]
--------------------------------------------
og denne php-fil:
--------------------------------------------
<?php
//Tjek om variablen p er sat i adresselinien. Hvis ike bruger vi side.
if ( isset( $_GET['p'] ) && !empty( $_GET['p'] ) ) $page = $_GET['p'];
else $page = "side";

//Hvis der er en / i enden fjerner vi denne.
if ( eregi("/$",$page) ) $page = substr($page,0,strlen($page)-1);

//sætter filnavnet til vores sti og .php
$filename = "includes/" . $page . ".php";

//Vi tjekker om filen eksisterer - hvis den gør includerer vi denne, ellers skriver vi at der ikke er nogen fil
if ( file_exists($filename) )
    include($filename);
else
    echo "no page for inclusion";
?>
--------------------------------------------

Håber du kan bruge det - mener det er sådan du vil have det :)
Avatar billede zyph Nybegynder
20. september 2004 - 16:30 #9
Damn, du er virkelig hurtig til at hjælpe - Lækkert, takker mange gange! =)

Det er ca det samme jeg har nu, bare dit er en del smartere. Det hjælper dog ikke på, at jeg vil have 2 undersider.

Med det du har skrevet kan jeg bruge side.dk/side, men den siger ikke noget om side.dk/artikler/underside?

Det skulle gerne være sådan, at den kan genkende det er en subside, og den derfor skal lede, ikke i includes/ men i dette tilfælde includes/artikel mappen?
Avatar billede zyph Nybegynder
20. september 2004 - 16:50 #10
Nu har jeg implementeret det du skrev, og det virker helt fortrinligt. Jeg har i includes mappen, oprettet endnu en mappe kaldet artikler og i den fil kaldet info.php

http://zyph.dk/artikler/info.php - Den viser godt nok filen øverst og noget design også? Forstår det sq ikke helt?
Avatar billede htm Nybegynder
20. september 2004 - 16:57 #11
Den skal så kaldes med:
http://zyph.dk/artikler/info eller http://zyph.dk/artikler/info/ - den vil så inkludere includes/artikler/info.php

Og eks. skulle virke fint med x antal undermapper :)
Avatar billede htm Nybegynder
20. september 2004 - 17:01 #12
Hvis det er fordi den ikke tager grafik og CSS filer med og så videre. så er det fordi du sikkert har defineret stier som img.gif - det vil sige i ovennævnte eksempel med http://zyph.dk/artikler/info vil den søge efter img.gif i http://zyph.dk/artikler/img.gif - eller http://zyph.dk/artikler/info/img.gif - det kan jeg ikke lige se - det er jo ikke helt hvad du forventer :)

derfor skal du lave dine billedelink og link til CSS vha absolutte stier med en / foran.

<img src="/img.gif"> så vil den søge efter http://zyph.dk/img.gif :)
Avatar billede zyph Nybegynder
20. september 2004 - 17:15 #13
Jaa, du er en skat. Det virker jo perfekt, lige som jeg ville have det ;) Skulle bare lige definere en / foran linket til mit stylesheet i index.php for at få det til at virke.

Jeg smækker lige nogen ekstra point på tråden her, så kan du lige få dem.

Takker mange gange, for den dejlige hjælp ;)!
Avatar billede htm Nybegynder
20. september 2004 - 17:24 #14
:) - du skal være velkommen :)

Så ligger jeg lige et svar. - men nu behøvede du ikke at hæve point antal.
Avatar billede zyph Nybegynder
20. september 2004 - 17:43 #15
Næeh, det ved jeg - men det fik jeg lige lyst til. Har nemlig hele 2.697 point at give af ;P
Avatar billede htm Nybegynder
20. september 2004 - 17:53 #16
tjaaa :-) - men jeg har så 46.600 i forvejen, så det er ikke fordi man er trængede ;)

men tak for point.
Avatar billede zyph Nybegynder
20. september 2004 - 19:01 #17
Heh, nej det kan man så sige, men jeg er glad for din hjælp! Du må sige til hvis jeg kan hjælpe med noget design/xhtml/css ting en dag, hvis du da ikke også kan det ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester