Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di Horez
    Registrato dal
    Oct 2007
    Messaggi
    25

    Mod Rewrite e Alcuni problemi.

    Salve ragazzi,
    allora forse non ho ben capito la logica dei mod_rewrite ma ho qualche problema che spero voi possiate aiutarmi a risolvere:

    Ho scritto nel file .httaccess una regola di questo tipo (dopo il RewriteEngine on ovviamente).
    RewriteRule ^/([^/]+)/([^/]+).html directory.php?categoria=$1&sottocategoria=$2 [L]

    Con questo sistema voglio scorrere le categorie come se ogni volta che accedessi ad una sottoarea mi trovo in una sottocartella (che in realtà non esiste) e che contiene tanti file html che sono le sue sottocategorie.

    Il rewrite funziona, nel senso che ottengo l'url che voglio ma ho un piccolo problema:

    1. Quando clicco sul link del tipo index.php/categoria/sottocategoria.html la pagina viene visualizzata, ma si perdono tutti i riferimenti agli elementi (come fogli di stile o elementi di layout) che fanno riferimento alla cartella principale dove è eseguito lo script.

    Esempio, il mio foglio di stile è nella cartella css/stile.css dove è situato il file directory.php che viene invocato durante il rewrite, ma quando chiama la pagina, lui perde il collegamento perchè è come se lo aspettasse sotto la cartella (non esistente) directory/

    Il problema è che non posso mettere un path assoluto perchè questo elemento che sto sviluppando deve essere replicabile e portabile.

    Spero di essere stato chiaro e che qualcuno possa aiutarmi.

  2. #2

    Re: Mod Rewrite e Alcuni problemi.

    Originariamente inviato da Horez
    Esempio, il mio foglio di stile è nella cartella css/stile.css dove è situato il file directory.php che viene invocato durante il rewrite, ma quando chiama la pagina, lui perde il collegamento perchè è come se lo aspettasse sotto la cartella (non esistente) directory/
    Usa "/css/style.css" invece di "css/style.css".

  3. #3
    Utente di HTML.it L'avatar di Horez
    Registrato dal
    Oct 2007
    Messaggi
    25

    Re: Mod Rewrite e Alcuni problemi.

    Originariamente inviato da Horez
    Il problema è che non posso mettere un path assoluto perchè questo elemento che sto sviluppando deve essere replicabile e portabile.
    So che questa è una soluzione possibile, ma rende l'applicazione non portabile, cioè se installo questo modulo in una sottocartella di un server non funziona perchè non si trova nella root.

    Secondo voi non esiste una soluzione con path relativo?

  4. #4
    Codice PHP:
    function webRoot(){
            return 
    dirname($_SERVER['SCRIPT_NAME']);
        } 

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  5. #5
    Utente di HTML.it L'avatar di Horez
    Registrato dal
    Oct 2007
    Messaggi
    25
    Stasera mi sento rimbambito

    cioè whisher tu mi dici che dovrei prendere tutti i file della mia applicazione
    e anteporre a tutti i link ad immagini, stili o altri riferimenti il risultato della funzione??

    Mi sembra una "follia" sicuro non esista un'altra soluzione?

  6. #6
    Originariamente inviato da Horez
    Stasera mi sento rimbambito

    cioè whisher tu mi dici che dovrei prendere tutti i file della mia applicazione
    e anteporre a tutti i link ad immagini, stili o altri riferimenti il risultato della funzione??

    Mi sembra una "follia" sicuro non esista un'altra soluzione?
    Per adesso l'unica soluzione che ho trovato
    è quella che ho postato se qc ci fà sapere
    un altro metodo ben venga




    In un file nella root che includo
    in tutte le pagine defisco una costante
    Codice PHP:
    define('WEB_ROOT',webRoot()); 
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  7. #7
    Utente di HTML.it L'avatar di Horez
    Registrato dal
    Oct 2007
    Messaggi
    25
    Riepilogo il problema nella speranza che qualcuno mi sappia aiutare

    Utilizzare mod_rewrite implica l'utilizzo di path assoluti e non relativi con conseguente difficoltà di portabilità del proprio codice?

    Spiego
    ho utilizzato in un mio file .htaccess per una mia applicazione la seguente regola:

    RewriteEngine On
    RewriteRule ^([^/]+)/$ index.php?catogoria=$1

    dunque avrò delle cartelle corrispondenti alle mie categoria dell'index, cartelle che non esistono realmente su server.

    Il problema e che tutti i fogli di stile e le immagini non sono più visualizzabili perchè si perde il riferimento dei path relativi.

    Grazie.

  8. #8
    E' esattamente lo stesso problema che ho affrontato io non più di 2 giorni fa, però l'ho risolto in maniera molto simile a quella descritta da whisher nel suo ultimo intervento.
    Una volta che avrai trasformato i percorsi in modo assoluto vedrai che tutto funzionerà a meraviglia, il codice sarà più che portabile e sarai soddisfatto del tuo lavoro!

    Ciaoo

  9. #9
    In realtà tutti i CMS decenti ottengono l'URI base o da $_SERVER['PHP_SELF'] o da $_SERVER['SCRIPT_FILENAME'] o da __FILE__ e, una volta che cambia il valore dell'URI base, aggiornano tutti i links di conseguenza. Non è un grosso lavoro dato che ogni URI viene analizzato dalla stessa funzione (mica devono cambiare tutti gli URI nei templates).

    In caso di un CMS non decente, si può usare il tag html <base>:
    http://www.w3.org/TR/html401/struct/links.html#h-12.4

    Questa è comunque da considerarsi una pezza.

  10. #10
    io personalmente ho usato una cosa del tipo:
    Codice PHP:
    define('WEB_ROOT'dirname(__FILE__)); 
    comunque, una volta modificati i percorsi di immagini, css, e js del software, non ci vorrà molto a cambiare questa costante..

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.