webForumDet fria alternativet

Navigeringsstruktur

Webbutveckling

8 svar · 1 059 visningar · startad av learn

Medlem sedan jan. 20051 130 inlägg
Frågan#1

Låt säga att jag har en sajt, https://www.minsida.com med en meny: 'startsidan', 'info', 'om mig' och 'kontakt'.

Hur rekomenderar ni mig att sköta navigeringen? Alltså när jag klickar på länken 'info', vad ska hända? Ett sätt som jag brukar använda mig av är att länken i detta fall ser ut så här:

<a href="?sida=info">Info</a>

och på huvudsidan infogar sedan vald sida så här:

<body>
Välkommen till...!

Meny:
<a href="?sida=startsidan">Startsidan</a> 
<a href="?sida=info">Info</a> 
<a href="?sida=ommig">Om mig</a>
<a href="?sida=kontakt">Kontakt</a>

<?
switch ($_GET['sida']) {

case 'startsidan'
  include 'start.php';
  break;

 case 'info'
  include 'info.php';
  break;

 case 'ommig'
  include 'om.php';
  break;

 case 'kontakt'
  include 'kontakt.php';
  break;
}
?>
</body>

Men nu har jag upptäckt att allt fler sajter går tillbaka till den "gamla hederliga" strukturen. Dvs att länken ser ut så här:

<a href="www.minsida.com/info/">Info</a>

Detta ser ju mycket trevligt ut i adressfältet, det är ju lättare för en besökare att se vart adressen leder...

MEN, hur gör man då rent praktiskt?? Man vill ju gärna slippa skriva hela huvudsidans innehåll och struktur på varje undersida...

Kan någon vänlig själ förklara för mig och gärna ge ett exempel på hur man gör?

Ge mig gärna också tips på andra sätt man kan bygga upp sin sajt!

Tack på förhand! :bire

Medlem sedan juni 20031 837 inlägg
#2

Oftast använder man sig av t.ex. mod_rewrite för apache. där kan du matcha en sökväga mot en fil.
t.ex. kan du säg att det som finns mellan https://www.minsida.com/ och nästa / ska vara en parameter till en PHP-fil. då kan du ha kvar sättet du använder i ditt PHP-skript men du får ändra utskriften för länkarna.
vill du läsa mer exakt finns det information på apaches hemsida. http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

Medlem sedan jan. 20051 130 inlägg
#3

The_Hulk skrev:

Oftast använder man sig av t.ex. mod_rewrite för apache. där kan du matcha en sökväga mot en fil.
t.ex. kan du säg att det som finns mellan https://www.minsida.com/ och nästa / ska vara en parameter till en PHP-fil. då kan du ha kvar sättet du använder i ditt PHP-skript men du får ändra utskriften för länkarna.
vill du läsa mer exakt finns det information på apaches hemsida. http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

Tack för tipset! Precis vad jag letade efter! :bire

Det var mycket att läsa...det får bli vid ett annat tillfälle. Kan du (eller ngn annan) förklara lite närmare hur det fungerar. Vart ska inställningarna göras, jag menar jag kan ju inte ändra i mitt webbhotells apache... A, jag förstår inte...

Tacksam för all hjälp!

Medlem sedan feb. 2000438 inlägg
#4

Om du får använda .htaccess-filer så kan du lägga in mod_rewrite-regler där.

Medlem sedan jan. 20051 130 inlägg
#5

Är detta ett vanligt sätt att bygga upp en sajt på? Är det svårt?

Medlem sedan jan. 20051 130 inlägg
#6

learn skrev:

Är detta ett vanligt sätt att bygga upp en sajt på? Är det svårt?

Någon som vill förklara?

Medlem sedan juni 20019 024 inlägg
#7

Nej, det är inte svårt. Ja, det är ett vanligt sätt att bygga upp en webbplats på.

Medlem sedan jan. 20051 130 inlägg
#8

Hittade en bra sida för detta ändamål http://www.phpsidan.nu/res_articles.php?view=art&id=62.

Så här ser nu min .htaccess-fil ut:

RewriteEngine On
RewriteRule ^([0-9]+)/([a-zA-Z\_]+) index.php?cat=$1&page=$2 [nc]
RewriteBase /

Men det fungerar inte som jag vill...

* När jag kör lokalt och går till "localhost/test/44/testar" så får jag 404 Not found.

* När jag, med samma script och .htaccess, kör online och går till "www.minsida.com/test/44/testar" händer ingenting, alltså inget 404 bara ett tomt fönster (kanske är så det ska funka?).

Mappen "test" innehåller bara index.php (och .htaccess)

index.php skrev:

<?
echo 'Test';
?>

Någon som kan hjälpa mig att förstå..?? Tack!

R: Om jag däremot skriver "www.minsida.com/test/testar/testar" så får jag 404...

Medlem sedan jan. 20051 130 inlägg
#9

Snart blir jag galen! Det fungerar perfekt online men exakt samma .htaccess-fil fungerar inte alls lokalt på min dator! När jag kör phpinfo lokalt så står det att mod_rewrite-modulen är laddad.

Kan ngn hjälpa mig, snälla! Kanske det finns ngn som stött på samma problem och/eller vet vad felet kan vara mitt i mitt fall...?

Tack på förhand!

252 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)