Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    23

    Il file .htaccess mi ignora -__-"

    Stò iniziando proprio adesso ad utilizzare i file .htaccess
    Dopo aver letto in giro ho pensato "Ma è semplicissimo!" e ho messo giù un primo file di testing

    RewriteEngine On
    RewriteRule ^(.*)/(.*)$ http://www.peperonittofilm.com/pag.php?pag=$2&lang=$1 [NC]

    per farmi trasformare questo
    http://www.peperonittofilm.com/pag.php?pag=4&lang=it
    in
    http://www.peperonittofilm.com/it/4

    Bhe funziona al contrario.
    Se io digito
    http://www.peperonittofilm.com/it/4
    mi riconverte l'url a
    http://www.peperonittofilm.com/pag.php?pag=4&lang=it
    e va nella pagina giusta.

    Se invece seguo qualche link nella forma "normale" non converte l'URL alla forma friendly.


    Vorrei capire:
    - perchè il browser non mi lascia/converte l'URL in modalità friendly?

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    perchè come hai capito il funzionamento è al contrario.

    Non puoi tramite una tecnologia lato server dire al browser come chiamare un url prima ancora che questo abbia contattato il server.

    Quello che puoi fare è generare dei link e poi dire al server come interpretarli.

    Con htaccess puoi quindi dire al server come interpretare l'url:

    http://www.peperonittofilm.com/it/4

    che non è un url reale, ma che con il rewrite trasformi in :

    http://www.peperonittofilm.com/pag.php?pag=$2&lang=$1

    Morale della favola:

    Il solo utilizzo di htaccess non è sufficiente, devi fare in modo che nel tuo sito ci sia una gestione dei link stampati in modo che seguano la regola che hai specificato nell'htaccess.

    In genere è buona norma usare una classe (o una funzione) che generi i link in modo tale che passati determinati parametri generi l'url che poi sia previsto nell'htaccess.

    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    23
    A questo punto la domanda sorge spontanea:
    Come faccio a farmi scrivere sul browser URL del tipo

    www.miosito.com/testo
    invece che:
    www.miosito.com/pag.php?roba=x&altraroba=y
    ??

    Lo stò facendo per una questione di indicizzazione e URL guardabili.

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Bhe, questo dipende da te, adesso scriverai l'url manualmente, dopo dovrai come ti dicevo scriverti una funzione del tipo:

    codice:
    function generalink($p1, $p2) {
      return "http://www.tuosito/$p1/$p2";
    }
    e poi nel tuo html anzichè scrivere:

    codice:
    <a href="http://www.tuosito/pag.php?roba=x&altraroba=y"">
    scriverai
    codice:
    <a href="<?php echo generalink('x', 'y');?>">...
    ovviamente è tutto molto semplificato.

    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    23
    Il fatto è che se scrivo URL a mano cmq lui me lo converte sulla barra degli indirizzi quindi anche se "convertissi" i link ho il timore che cmq farebbe la conversione sulla riga degli indirizzi..

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    eh?

    Sulla barra degli indirizzi non viene convertito nulla, è solo una questione interna di apache.

    Se tu chiedi al web server:

    http://www.tuosito.com/parametro1/parametro2/

    Se c'è il rewrite engine che identifica il pattern, internamente il webserver converte la chiamata e php riceve i parametri che tu gli passi, altrimenti restiuisce un 404 di pagina non trovata.

    Il punto è che tutto avviene internamente, l'utente non si accorge di nulla e non viene cambiato nessun indirizzo nel browser.

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    23
    Ecco il problema..

    Vai all'indirizzo:
    http://www.peperonittofilm.com/it/3

    e come puoi notare per qualche motivo l'indirizzo viene riconvertito.. -____-"

    Il sito non l'ho sviluppato io ma vedo improbabile che il programmatore faccia in tutte le pagine un redirect a se stesse..

  8. #8
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Puoi postare il tuo htaccess?

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    23
    Originariamente inviato da gianiaz
    Puoi postare il tuo htaccess?

    Semplicemente questo:


    RewriteEngine On
    RewriteRule ^(.*)/(.*)$ http://www.peperonittofilm.com/pag.php?pag=$2&lang=$1


    Dato che prima di implementare tutte le casistiche volevo vedere come funzionava..

  10. #10
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    quello che non capisco è che il browser riceve un codice 302 che è una redirection, quindi in pratica intepreta quella regola come una redirezione verso l'url che tu indichi.

    Non so se c'è qualche impostazione di default del tuo server che fa si che quella regola venga interpretata come una redirezione.

    Per scrupolo (anche se non sono sicuro che risolva) prova a cambiarla cosi:

    codice:
    RewriteRule ^(.*)/(.*)$ http://www.peperonittofilm.com/pag.php?pag=$2&lang=$1 [L]

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.