• User Attivo

    Info su mod rewrite

    Ciao
    vorrei delle info, sto pensando di applicare il mod rewrite al mio sito in php + mysql per una migliore indicizzazione.

    I quesiti sono :

    • sull'host (linux) funziona, in locale in windows no perchè nel http.conf non c'è la riga AddModule mod_rewrite.c e se l'aggiungo Apache non si avvia
    • sull'host che va è normale che se io ho una cosa del genere

    RewriteEngine On
    RewriteRule ^video/(.+)/(.+).html view.php?categoria=$1&titolo=$2

    la pagina view.php cerca i file associati (immagini, css ecc) a partire dalla radice video/categoria/? e tutti gli url fanno la stessa cosa?? Quindi mi ritrovo una pagina senza stile che però applica il mod rewrite, però se ovviamente al link alias ci metto solo id.html tutto funziona La radice non viene modificata), ora mi chiedo perchè succede questo? Quello non è solo un alias? perchè si applica a tutto? C'è un modo per impostare questo rewrite solo ad un link senza influenzare nessun'altra cosa?
    image

    In più mi chiedo se è obbligatorio far passare un determinato dato per usarlo.
    Mi spiego:

    se il mio link vero è view.php?id=10&categoria=musica&link=qualcosa e vorrei creare video/musica/10.html per recuperare la variabile link devo per forza metterlo nel link alias ?


  • Super User

    @daWsOn_s said:

    I quesiti sono :

    • sull'host (linux) funziona, in locale in windows no perchè nel http.conf non c'è la riga AddModule mod_rewrite.c e se l'aggiungo Apache non si avvia
    • sull'host che va è normale che se io ho una cosa del genere

    Devi anche caricare il modulo e non solo aggiungerlo, per esempio io nel mio httpd.conf in windows ho la riga:
    LoadModule rewrite_module modules/mod_rewrite.so

    @daWsOn_s said:

    la pagina view.php cerca i file associati (immagini, css ecc) a partire dalla radice video/categoria/? e tutti gli url fanno la stessa cosa?? Quindi mi ritrovo una pagina senza stile che però applica il mod rewrite, però se ovviamente al link alias ci metto solo id.html tutto funziona La radice non viene modificata), ora mi chiedo perchè succede questo? Quello non è solo un alias? perchè si applica a tutto? C'è un modo per impostare questo rewrite solo ad un link senza influenzare nessun'altra cosa?
    Nom so se ho capito quello che intendi dire. Se ti riferisci ai link che avrai nella pagina, devi usare percorsi assoluti e non più relativi

    @daWsOn_s said:

    In più mi chiedo se è obbligatorio far passare un determinato dato per usarlo.
    Mi spiego:

    se il mio link vero è view.php?id=10&categoria=musica&link=qualcosa e vorrei creare video/musica/10.html per recuperare la variabile link devo per forza metterlo nel link alias ?

    Si, altrimenti non servirebbe nemmeno il parametro nel GET


  • User Attivo

    @ayrton2001 said:

    Devi anche caricare il modulo e non solo aggiungerlo, per esempio io nel mio httpd.conf in windows ho la riga:
    LoadModule rewrite_module modules/mod_rewrite.so

    si il loadmodule è decommentato è l'addmodule che non c'è proprio.

    @ayrton2001 said:

    Nom so se ho capito quello che intendi dire. Se ti riferisci ai link che avrai nella pagina, devi usare percorsi assoluti e non più relativi

    Oh mio dio mi vuoi dire che io sei volessi cambiare tutto dovrei cambiare a mano tutti i link, immagini, ecc?? E se io produco in locale che faccio devo fare doppio lavoro perchè in locale uso http://localhost/ e nel server http://www.miosito.it ?? Mi sembra una cosa assurda e tra l'altro i siti che usano il mod rewrite dal codice hanno comunque link relativi (tipo i fogli di stile che a me si perdono "inventando" una "falsa" directory)

    Si, altrimenti non servirebbe nemmeno il parametro nel GET
    già :ciauz:


  • User Attivo

    Mio dio, mi auto correggo 😮 ho visto un sito a caso fatto con wordpress e ha davvero tutti i link assoluti :sbonk:

    MA così (anche facendolo dall'inizio) non si perde solo un sacco di tempo? Cioè c'è un modo per inserire l'indirizzo assoluto automaticamente (magari con un $_SERVER [qualcosa] che non conosco) che funzioni sia in locale che in remoto senza cambiare doppiamente le cose?

    Grazie:ciauz:


  • User Attivo

    scusate!! chiedo di spostare questa discussione ho appena visto che c'è una sezione apposita per il modrewrite. 😄


  • User Attivo

    Up 😞


  • User Attivo

    Per fare un esempio a caso (wordpress)

    http://www.astronomia.com/2007/07/10/classificazione-spettrale/

    Qui il codice html ha quasi tutti i link assoluti tranne che le immagini hanno in tutte la pagina link come

    <img src="/wp-content/themes/Astronomia/images/1-anno-side.jpg"

    e allora mi chiedo come è possibile che quella immagine viene trovata (con base solo il dominio) e non parte da http://www.astronomia.com/2007/07/10/classificazione-spettrale/ ??


  • User Attivo

    e se usassi <base href="http://www.miosito.it"> (che funziona!!) può essere una soluzione valida? Me lo chiedo perchè qui nessuno parla di questi problemi di link assoluti e relativi!:o


  • Super User

    Puo non usare i link assoluti, ma cmq ogni riferimento a file, immagini, fogli di stile, etc... dovranno avere il percorso completo come in questo caso:
    <img src="/wp-content/themes/Astronomia/images/1-anno-side.jpg"


  • User Attivo

    @ayrton2001 said:

    Puo non usare i link assoluti, ma cmq ogni riferimento a file, immagini, fogli di stile, etc... dovranno avere il percorso completo come in questo caso:
    <img src="/wp-content/themes/Astronomia/images/1-anno-side.jpg"

    si ma questo è comunque relativo allla posizione in cui si trova ma comunque parte dalla base del dominio


  • User Attivo

    Ah si hai ragione peccato che però questo comporta il fatto che se non lavori dalla root ti salti della posizioni