Load af .php filer i WAMP / Apache

Tags:    apache server

Jeg bruger WAMP (Apache) til test lokalt. Når jeg loader indhold uden extension via et link fungerer det fint så længe det er en .html-fil - fx loader 'home.html' med dette link:

<a href="/home">Load content of home</a>

Forsøger jeg at at loade 'home.php' via WAMP på samme måde (altså uden extension som beskrevet ovenfor), får jeg en error:

"Not found. The requested URL /html.html was not found on this server."

Er der nogen der ved hvordan jeg får WAMP / Apache til også at loade .php filer på samme måde .html filer?



2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Du kan nok ikke få den til at gøre det for begge filer lige sådan. Hvis jeg skriver /home skal den jo enten vælge home.html eller home.php, den kan ikke vælge begge.

Efter lidt Googling fandt jeg at hvis du gerne vil ændre det så den fortolker urlsne uden extensions som PHP kan du åbne Apache config filen httpd.conf og finde linjen der begynder med: DefaultType. Den burde du kunne ændre til: application/x-httpd-php.

En anden mere involveret måde ville være rewriting, dvs., at Apache omskriver urlsne internt før den forsøge at 'bruge' dem. Men problemet er der stadig, hvis du vil have det fortolket både som .php og .html på samme tid.

Måske findes der en måde hvorpå man kan få Apache til at se om home.html findes. Hvis ikke forsøger den så home.php. Men kan ikke se hvorfor nogen ville have det sådan.



Indlæg senest redigeret d. 20.04.2014 22:48 af Bruger #14645
Hej Søren og tak for svar. Måske jeg ikke var helt tydelig i beskrivelsen af mit spørgsmål - mit ønske var muligheden for at loade en side uanset om extension er .html eller .php.

Jeg fandt løsningen ved at bruge mod_write - som du også nævner i dit svar - for både .html og .php- sider indsat i en .htaccess placeret i root af server.

Her er reglerne der gør brugen af .php og .html extensions unødvendige når siderne er indsat i links:

Options +FollowSymlinks

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
</IfModule>





t