Back to Question Center
0

Semalt: blog / index.php / author / come creare questo tipo di URL per la mia pagina php?

1 answers:

L'URL del blog di Semalt ha questa notazione. capitolo. php c'è un altro percorso. non è una directory esistente sul server. la mia domanda è come lo fanno? posso fare qualcosa del genere sul mio semplice sito web PHP?

. - php conectar mysql servidor remoto
February 12, 2018

blog / indice. php / author /

Questo formato URL specifico, contenente indice. php (che si associa ad un file fisico) usa le informazioni aggiuntive sul percorso, ad es. / autore / per indirizzare la richiesta. Non richiede ulteriore riscrittura di URL da parte del server.

Tutte le richieste sono gestite dal file / blog / indice. php (come indicato nell'URL stesso). All'interno indice. php puoi quindi fare riferimento alle informazioni sul percorso usando il superglobal PHP $ _SERVER ['PATH_INFO'] per decidere cosa farai con la richiesta. Nel caso dell'URL di esempio, $ _SERVER ['PATH_INFO'] contiene la stringa / author / (come menzionato sopra).

Questo richiede che PATH INFO sia abilitato sul server affinché funzioni (altrimenti, su Apache, si innescherebbe solo un sistema generato 404). Le informazioni sul percorso sono abilitate di default per il gestore PHP.

posso fare qualcosa del genere sul mio semplice sito web PHP?

Sì Gli URL si mappano direttamente ai percorsi del filesystem, ad es. / blog / autore. php ) quindi l'implementazione di questa struttura potrebbe richiedere una ristrutturazione con poco o nessun vantaggio per la struttura dell'URL stessa.

Si noti che questo è diverso da un URL del modulo / blog / autore / (non l'assenza di indice

Quando useresti (normalmente) questo tipo di URL?

Quando si desidera instradare tutte le richieste attraverso un "front controller" (es. indice. Il contenuto potrebbe essere memorizzato in un database di qualche tipo e il tuo "front controller" sa come costruire la risposta per ogni URL di richiesta.

Ad esempio, in indice. php potresti avere qualcosa del tipo:

   200,'TITLE' => null,'BODY' => null,
];
$ url = isset ($ _ SERVER ['PATH_INFO'])? $ _SERVER ['PATH_INFO']: null;
if ($ url == '/ author /') {// Ricerca del contenuto dal database o da altro file, ecc  . $ content ['TITLE'] = 'Contattami';$ content ['BODY'] = '

Completa il modulo sottostante . '; } http_response_code ($ [ 'STATO'] contenuto); ?> <? = {$ Contenuto [ 'TITOLO']}?> </ Title> </ Head> <Body> <? = {$ Contenuto [ 'BODY']}?> </ Body> </ Html></code> </pre> </div> <div class="comment-footer"> <!-- <div class="posted_at">--> <!----> <!--</div>--> </div> </div> </div> </div> </div> </div> </div> </div> </div> <script src="/js/main.js?23" type="text/javascript"></script> <script src="/js/post.js" type="text/javascript"></script> <!--LiveInternet counter--><script type="text/javascript"> new Image().src = "//counter.yadro.ru/hit;reputation?r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+ ";h"+escape(document.title.substring(0,150))+ ";"+Math.random();</script><!--/LiveInternet--> </div> <script type="text/javascript" src="https://semalt.com/app/partials/timer-reputation.php"></script> <!-- <script type="text/javascript" src="https://semalt.com/popups/new_popup_counters.php?ref=reputation&sec=3"></script>--> <!-- <script type="text/javascript" src="https://semalt.com/popups/small_start_reputation_popup.php?ref=reputation"></script>--> <!--<script src="https://semalt.com/js/din/popup_seo_cons.php"></script>--> </body> </html>