Dölja filändelser i länkar. Hur?

Tråden skapades och har fått 5 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Karlstad
  • 2006-04-20 19:30

Tar upp innehållet ur en massa olika mappar med hjälp av php och listar/länkar filerna i en html-sida. Men filerna är också html-filer och har följaktigen ".html" som filändelse och länkarna ser ut som t.ex. "foo.html".

Nu skulle jag hemskt gärna få bort det där ".html" ur själva länktexten. Det ska helt enkelt inte renderas i webbläsaren, har jag tänkt mig. Men hur? Jag har letat som en galning hela dagen efter script och .htaccess tutorials, men kammat noll.

Bra att veta: Nej, jag kan inte göra om själva filerna på nåt sätt. Det handlar om tusentals.

Tips?

  • Medlem
  • Karlstad
  • 2006-04-20 20:13

Tack, tack.

Tyvärr tror jag inte att det gör vad jag är ute efter. Det är nog jag som förklarar dåligt. Så jag försöker en gång till:

Filerna i en mapp indexeras automatiskt av ett php-skript och förs över till en html-sida som länkar. Varje filnamn blir alltså en länk. I dessa länkar finns således ändelsen ".html".

Eftersom det är tusentals filer, som dessutom ändras ofta, så kan man inte peta i det här manuellt. Att ändra i .htaccess som itchyhands beskriver betyder (som jag fattat) att filen "foo.html" kan hämtas även om URLen (dvs länken i a-taggen) inte innehåller ".html". Det är inte det jag menar. Den länken får jättegärna innehålla ".html". Men det är själva länktexten som användaren ser som ser förjäklig ut med ".html". Jag vill på nåt sätt dölja det, så att användaren bara läser "foo".

Hoppas jag förklarat bättre nu.

Jag kan inte tro att detta ska vara så svårt med php. Men tyvärr kan jag lika mycket om det som jag kan om fornrumänsk fonetik, dvs ingenting.

Aha!

Jag som tyckte att jag hade googlat så duktigt... :rolleyes:

Men du letar alltså efter en php-funktion som klipper en sträng vid första punkten bakifrån?

Härifrån snattade jag det här (lite omgjort):

$text = "index.html";
$trimmed = rtrim($text, ".html");
// $trimmed = "index"

Den gör nästan det du vill. Nu är jag allt annat än bra på PHP, så någon får gärna bekräfta att det här är korrekt.

  • Medlem
  • Karlstad
  • 2006-04-20 20:44

Nu kom vi närmare, tror jag.
Självklart är det inte förklarat så att en trähatt som jag fattar direkt. Ska laborera och se vad som händer.

Tack skaru ha!

  • Medlem
  • Simrishamn
  • 2006-04-22 22:05

Du kan väl pilla ihop någon snygg rewrite-rule, typ:
RewriteRule ^/website/(.*)$ /$1.html

Har inte testat den och vet inte om den fungerar, men principen borde ju funka. Att den har ett /website/-prefix är för att den ska veta vilka sidor den ska och vilka den inte ska dölja.
Så, dinsida.se/website/foo blir dinsida.se/foo.html
Du förstår nog hur jag menar, så du kan själv peta ihop det som passar.

1
Bevaka tråden