Visualizzazione dei risultati da 1 a 1 su 1

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    5

    delucidazioni su mod_rewrite degli url

    Buonasera a tutti, sto provando sul mio server locale varie soluzioni per rendere gli url delle mie pagine (che, una volta pronte e testate saranno caricate sul web server remoto) più accattivanti e leggibili. Ciò che mi piacerebbe ottenere è che non venga mostrata l'estensione delle pagine (sono tutte in php) quindi, mettendo come url nomesito/home viene mostrata la pagina home.php. Fin qui tutto ok. Ora però mi piacerebbe anche che, richiamando l'url (esempio) nomesito/dati venga mostrata la pagina dati.php che contiene un elenco dei nomi possibili (come prima, funziona) ma chiamando nomesito/dati/mario venga richiamata la pagina dati.php?id=mario e chiamando nomesito/dati/mario/2015 venga richiamato la pagina dati.php?id=mario&y=2015. Quello che ho fatto è scrivere il seguente file .htaccess:
    codice:
    RewriteEngine On
    DirectoryIndex home.php
    RewriteCond %{REQUEST_FILENAME} !\.php$
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule . - [L]
    RewriteCond %{REQUEST_URI} !\.php
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^([^/]+)/?$ $1.php [L,QSA]
    RewriteRule ^([^/]+)/([^/]+)/?$ $1.php?id=$2 [L,QSA]
    RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ $1.php?id=$2&y=$3 [L,QSA]
    il codice funziona, non fosse per il fatto che, in dati.php (che si trova nella root del sito), dove è contenuta una cartella img contenente le immagini, viene richiamata ad esempio un'immagine come img/pic.jpg capita questo:
    se come url metto nomesito/dati la pagina viene caricata correttamente ma l'immagine non è visibile, come se fosse avvenuto un cambio della cartella locale ()
    stesso avviene chiamando nomesito/dati/mario o nomesito/dati/mario/2015
    anche se, stampando a video un get dei parametri, sono corretti!
    Viceversa, richiamando nomesito/dati.php l'immagine è visibile.
    So che potrei risolvere richiamando l'immagine come /img/pic.jpg, forzando il percorso a partire dalla root ma proprio non capisco per quale motivo ci dovrebbe essere un cambio di cartella!
    Qualcuno ha idea di cosa succeda? non ho trovato una buona guida che spieghi fino in fondo tutto il funzionamento delle rewrite rules. Grazie a tutti, un saluto, Alessandro
    Edit: questa è più una curiosità rivolta a chi è più navigato di me nel settore che una domanda, ho visto cercando sull'argomento che spesso si usa anche fare una cartella (nell'esempio di prima sarebbe dati) e poi al suo interno mettere una pagina index.php (o home.php visto il directoryindex dell'htaccess) e magari altre pagine (come mario.php). Quale soluzione (inteso tra passaggio di variabili via get e rewrite dell'url o cartelle con index propria) preferite usare o trovate sia più comoda/gestibile?
    Ultima modifica di alep90; 02-10-2015 a 17:16

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.