Strumenti Utente

Strumenti Sito


programmazione:php:rotte_personalizzate

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
Ultima revisione Entrambe le parti successive la revisione
programmazione:php:rotte_personalizzate [22/02/2022 - 10:57]
Fabio Di Matteo
programmazione:php:rotte_personalizzate [23/08/2023 - 16:43]
Fabio Di Matteo
Linea 1: Linea 1:
 ====== Rotte personalizzate in PHP ====== ====== Rotte personalizzate in PHP ======
-Autore: **//Fabio Di Matteo//** \\ Ultima revisione: ​ **//  ​22/02/2022  ​- ​10:20   //**  // //+Autore: **//Fabio Di Matteo//** \\ Ultima revisione: ​ **//  ​23/08/2023  ​- ​16:40   //**  // //
  
-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** ​.+Trovata questa classe che permette di specificare delle rotte personalizzate in php ([[https://github.com/bramus/​router/​tree/​master|Bramus Router]]) . Mostro brevemente l'​utilizzo.
  
-===== 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 . 
- 
-<​file>​ 
-... 
-AccessFileName .htaccess 
-... 
-</​file>​ 
-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: 
- 
-<​file>​ 
-<​VirtualHost>​ 
-... 
-<​Directory /​var/​www/​html>​ 
-      ​Options Indexes FollowSymLinks 
-      ​AllowOverride All 
-      ​Require all granted 
- </​Directory>​ 
-  
-</​VirtualHost>​ 
- 
- 
-</​file>​ 
- 
-In seguito inseriremo nella root del nostro progetto il file .htaccess : 
-<​file>​ 
-RewriteEngine On 
-RewriteBase / 
-RewriteCond %{REQUEST_FILENAME} !-d 
-RewriteCond %{REQUEST_FILENAME} !-f 
-RewriteRule ^(.+)$ /​PHP/​routes/​index.php [QSA,L] 
- 
-</​file>​ 
- 
-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** 
 <code php> <code php>
 <?php <?php
 + # https://​github.com/​bramus/​router/​tree/​master
 +
 + require_once __DIR__ . '/​Router.php';​
 +  
 + // Create a Router
 +    $router = new \Bramus\Router\Router();​
 +    ​
 +    ​
 +    /*
 +     ​* ​ $router->​get('​pattern',​ function() { });
 + $router->​post('​pattern',​ function() {  });
 + $router->​put('​pattern',​ function() {  });
 + $router->​delete('​pattern',​ function() {  });
 + $router->​options('​pattern',​ function() {  });
 + $router->​patch('​pattern',​ function() { });
 + $router->​all('​pattern',​ function() { });
 +     * */
 +
 + $router->​get('/',​ function () {
 + echo '<​h1>​Home page</​h1>';​
 +  
 + });
 +  
 + $router->​get('/​fabio',​ function () {
 + echo '<​h1>​Hello Fabio!</​h1>';​
 + echo '​s='​.$_GET['​s'​];​
 +  
 + });
 +  
 +   $router->​set404(function () {
 +         echo '<​h1>​Pagina non trovata </​h1>';​
 +    });
  
-$request = $_SERVER['​REQUEST_URI'​];+  
 +  
 +   ​$router->​run();
  
 +?>
  
- 
-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; 
-} 
-?> 
  
 </​code>​ </​code>​
- 

programmazione/php/rotte_personalizzate.txt · Ultima modifica: 23/08/2023 - 16:54 da Fabio Di Matteo