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
programmazione:php:rotte_personalizzate [22/02/2022 - 10:57]
Fabio Di Matteo
programmazione:php:rotte_personalizzate [23/08/2023 - 16:54]
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 ===== +<code php> 
-Assicuriamoci che nel **file di configurazione principale di Apache** (di solito ​/etc/httpd/htppd.confoppure ​/etc/​apache2/​apache2.confsia abilitata la direttiva per l'override delle impostazioni attraverso i file .htaccess .+<?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>';​ 
 +    });
  
-<​file>​ +   
-... +   
-AccessFileName .htaccess +   $router->run();
-... +
-</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>+</code>
  
-In seguito inseriremo nella root del nostro progetto il file .htaccess :+**.htacces per apache**
 <​file>​ <​file>​
 RewriteEngine On RewriteEngine On
-RewriteBase /+RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-d
-RewriteCond %{REQUEST_FILENAME} !-f +RewriteRule . index.php [L]
-RewriteRule ​^(.+)$ /​PHP/​routes/​index.php [QSA,L] +
 </​file>​ </​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> 
-<?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; 
-} 
-?> 
- 
-</​code>​ 
- 

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