Barra laterale

programmazione:php:rotte_personalizzate

Questa è una vecchia versione del documento!


Rotte personalizzate in PHP

Autore: Fabio Di Matteo
Ultima revisione: 22/02/2022 - 10:20

Anche in php e apache è possibile ottenere delle rotte personalizzate. Ecco come.

Per rotte prsonalizzate intendiamo qualcosa come per esempio https://www.miosito.it/homepage .

Configuriamo Apache

Assicuriamoci che nel file di configurazione principale di Apache (di solito /etc/httpd/htppd.conf, oppure /etc/apache2/apache2.conf) sia abilitata la direttiva per l'override delle impostazioni attraverso i file .htaccess .

...
AccessFileName .htaccess
...

Abilitiamo il nostro Virtual host ad accettare le direttive dai file .htaccess. Andiamo nel file della configurazione del nostro virtual host e aggiungiamo quanto segue, avendo cura di scrivere il percorso giusto delle nostre cartelle:

<VirtualHost>
...
<Directory /var/www/html>
	     Options Indexes FollowSymLinks
	     AllowOverride All
	     Require all granted
	</Directory>
	
</VirtualHost>

In seguito inseriremo nella root del nostro progetto il file .htaccess :

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ /PHP/routes/index.php [QSA,L]

Attenzione ai percorsi. Ovviamente devono corrispondere al vostro index.php sulla root del progetto. In pratica stiamo redirigendo tutto il traffico http sul file index.php. Dunque /PHP/routes/ è la cartella dove ho messo il mio progetto.

Il nostro codice PHP

index.php

<?php
 
$request = $_SERVER['REQUEST_URI'];
 
 
 
switch ($request) {
 
 
    case '/PHP/routes/' :
        require __DIR__ . '/rotte/home.php';
        break;
    case '/PHP/routes/info' :
        require __DIR__ . '/rotte/phpinfo.php';
        break;
 
    case '/PHP/routes/fml':
        header('Location: https://www.freemedialab.org/');
        break;
 
    default:
        http_response_code(404);
        require __DIR__ . '/rotte/404.php';
        break;
}
?>

programmazione/php/rotte_personalizzate.1645523858.txt.gz · Ultima modifica: 22/02/2022 - 10:57 da Fabio Di Matteo