WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Hur länkar man utan .html / .php ? (https://www.wn.se/forum/showthread.php?t=30988)

Aron L 2008-08-07 00:48

Jag är i färd med att snygga upp länkstrukturen på ett projekt jag jobbar med, och vill göra länkningen något enklare för mina besökare.

Det jag har problem med och inte vet hur jag ska göra är att ta bort ".html" och ".php" ifrån filnamnen när jag länkar.

Jag vill alltså att www.exempel.com/exempel leder till exempel.html eller exempel.php - och att det gör det för "varje sida" jag har.
Sidan jag skapar kommer vara i samma stil som en nyhetssajt, och kommer därför uppdateras hela tiden - därför skulle det underlätta
om man inte heller behövde skapa det manuellt för varje länk.

Någon som vet eller kan peka mig i rätt riktning?

crazzy 2008-08-07 01:06

Om du kör apache så är det mod_rewrite som gäller.
Lägg följande i din .htaccess
Citat:


RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?(.*)$ $1.php [L,QSA]

Där .php är det riktiga filnamnstillägget. Alla url:er som inte finns kommer att skrivas om och sedan komemr servern försöka öppna urk:en fast med tillägget .php och om det inte funkar blir det en vanlig 404. Om det funkar kommer din sida fram.

Aron L 2008-08-07 02:26

Tack för svaret!

Bara för att kontrollera att jag föstått rätt:

Om jag skriver in www.test.com/hej och det finns en fil som heter hej.php så kommer
den sidan att visas?

OCH... om användaren skriver www.test.com/finnsinte så kommer det
bli 404 ?

OCH... om användaren skriver www.test.com/finnsinte.php så kommer det
bli 404 också?

MMC 2008-08-07 08:38

Citat:

Originally posted by Aron L@Aug 7 2008, 02:26
Tack för svaret
Bara för att kontrollera att jag föstått rätt:
Om jag skriver in www.test.com/hej och det finns en fil som heter hej.php så kommer
den sidan att visas?
OCH... om användaren skriver www.test.com/finnsinte så kommer det
bli 404 ?
OCH... om användaren skriver www.test.com/finnsinte.php så kommer det
bli 404 också?

Nej, om du länkar in www.test.com/hej.gif så kommer servern inte att försöka ladda in hej.gif.php, utan ge dig bildfilen. Samma sak om du länkar till en mapp som heter www.test.com/mapp. Men om det inte finns en fil eller en mapp som heter exakt som URL:en, så kommer servern att pröva att lägga på .php.

Aron L 2008-08-07 09:27

Har nu tillgång till server och har provat - Funkar alldeles utmärkt: Tack för bra och enkelt svar.

klein 2008-08-08 05:17

Citat:

Originally posted by Aron L@Aug 7 2008, 09:27
Har nu tillgång till server och har provat - Funkar alldeles utmärkt: Tack för bra och enkelt svar.
Ett annat knep man kan göra :


Kod:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php

Då får man upp alla anrop till serven till index.php, i den filen skriva kod som laddar hemsidan som man vill ha det. Fördelen är att man kan lägga mycket kod utanför public_html katalogen, dvs det bli svårare för folk att fixa och trixa med din kod, utan allt måste gå via index.php ..

Drew 2008-08-08 10:59

Eller
Kod:

RewriteRule ^(.*) index.php?page=$1 [NC,L,QSA]
Så får man via $_GET['page'] reda på vilken sida besökaren vill se.

Aron L 2008-10-19 13:07

Nu gräver jag fram denna för att få svar på ytterligare en fråga :)



Jag använder i dagsläget detta för att visa sidor utan .php så, i dagsläget funkar
det hur bra som helst.

Jag använder mig av följande kod i .htaccess:
Kod:


RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?(.*)$ $1.php [L,QSA]

... Detta ger mig möjligheten att skapa en sida.php och enbart skriva in www.minsida.com/sida för att visa den.

Nu har jag börjat bygga upp en databas med information där jag kör t ex minsida.com/sida?namn=exempel för att
hämta upp den info jag vill ha - och vill kunna köra minsida.com/namn/exempel istället, och fortfarande inte visa några filändelser för .php.

Hur gör jag detta? Allt jag har provat resulterar i att ingenting vill visas överhuvudtaget.

Om det hjälper: Här är en länk till sidan: http://www.allacentrum.se/alla_butik...tyreso-centrum

Det är denna jag vill ska visa allacentrum.se/alla_butiker/tyreso-centrum eller dylik.

youheardit 2008-10-19 14:18

ett annat alternativ är att göra en mapp på servern och sedan döpa den till då vad du vill att sidan ska heta (tex: www.minsida.se/sida) mappen ska då heta sida, sedan inuti mappen ska du göra en fil: index.html/.php mm. indexfilen ska vara den sidan som ska visas när besökaren skriver in www.minsida.se/sida
då kommer index.html fram!

hoppas det var den information du ville ha!

ha de bra! // Philip.

crazzy 2008-10-19 14:31

Det borde funka med:
Kod:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?(.*)/?(.*)$ $1.php?name=$2 [L,QSA]

Har dock inte testat.


Alla tider är GMT +2. Klockan är nu 22:39.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson