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!
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
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...
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)
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!
263 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25