A php kiterjesztés elrejtése az url rewrite modul segítségével elvégezhető. Szerverenként eltérő a beállítás menete, én a két legnépszerűbb szerverről fogok írni: Apache és Nginx.
Apache
Amennyiben az apache konfig fájlja engedi, a weboldal gyökerében elhelyezett .htaccess (csak ennyi a fájlnév, és fontos a pont az elején) nevű fájllal a legkönnyebb elérni a kívánt hatást. A fájlba be kell írni ezt a pár sort:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Ezzel a beállítással minden nem létező fájlra vagy könyvtárra vonatkozó kérést az index.php fog feldolgozni. Az index.php-ban saját feltételeink szerint szolgálhatjuk ki a szükséges tartalmat.
Nginx
Ugyanezt az működést az nginx konfigfájljában megadott rövid kóddal érhetjük el. Ezt a fájl alapértelmezetten az alábbi helyek valamelyikén találjuk:
- /usr/local/nginx/conf
- /etc/nginx
- /usr/local/etc/nginx
Az átíráshoz szükséges beállítás:
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php; }
}