Visualizzazione risultati 1 fino 19 di 19

Discussione: Url con pagine senza formato

  1. #1
    Guest

    Question Url con pagine senza formato

    Ciao a tutti, nel web ho trovato molti siti che hanno pagine dinamiche ma con username di utenti come se fossero directory. Un esempio che mi viene in mente è Facebook (spero che non sia spam il nome Facebook e i link di prova che sto per scrivere) che mette i nomi degli utenti negli url come se fossero directory:
    Codice:
    http://www.facebook.com/TuoNomeUtente
    Non possono essere file perché manca il formato e non ha senso fare 1000000000 di file per 1000000000 di utenti, non sono cartelle sempre per lo stesso motivo di prima, quindi il server apache rileva il nome utente che è nell'url. Io normalmente faccio così:
    Codice:
    http://www.bookfacesocial.com/profile.php?username=TuoUsername
    Posso fare come Facebook modificando il file .htaccess?
    P.S.: Io non so scrivere i file .htaccess, quindi quando mi mostrate il codice me lo spieghereste?

  2. #2
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Devi utilizzare .htaccess.
    Prova così
    Codice:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^/([0-9]+)$		profile.php?username=$1 [QSA,L]

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da radiodelmomento Visualizza messaggio
    Devi utilizzare .htaccess.
    Prova così
    Codice:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^/([0-9]+)$		profile.php?username=$1 [QSA,L]
    ho inserito il codice che mi hai detto nel .htaccess ma quando vado su http://bookfacesocial.altervista.org/98edorado (98edoardo è il mio username nel io sito) mi arriva un messaggio di AlterVista con un errore 404.

  4. #4
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Mi sembrava che era un numero.
    Basta modificare la riga...
    Codice:
    RewriteRule ^/([0-9a-zA-Z]+)$		profile.php?username=$1 [QSA,L]
    Non sono sicuro che funzioni, ma dovrebbe...

  5. #5
    Guest

    Predefinito

    Scusa se ti rispondo dopo tanto tempo ma non funziona. Ti ringrazio

  6. #6
    L'avatar di trylab
    trylab non è connesso Neofita
    Data registrazione
    02-09-2012
    Messaggi
    24

    Predefinito

    Secondo me dovresti scrivere:

    Codice:
    RewriteEngine on
    RewriteRule ^bookfacesocial\.altervista\.org/(.+)$ profile.php?username=$1 [L]

    Dovrebbe funzionare (spero)....

  7. #7
    Guest

    Predefinito

    No non funziona

  8. #8
    L'avatar di trylab
    trylab non è connesso Neofita
    Data registrazione
    02-09-2012
    Messaggi
    24

    Predefinito

    mmm...ok cambiamo approccio..(adesso che rileggo la mia RewriteRule non convince pure me..):

    Codice:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^([0-9A-Za-z]+) profile.php?username=$1 [L]
    Ho fatto una prova con PHP per vedere se la cosa funzionava se la prima non funziona questa probabilmente dovrebbe risolvere:

    Codice:
    RewriteEngine On
    RewriteRule ^([^/]+)/([0-9A-Za-z]+)$ $1/profile.php?username=$2 [L]
    con PHP partendo da www.bookfacesocial.com/USER e usando questa espressione regolare (che potrebbe essere di sicuro migliorata)restituisce www.bookfacesocial.com/index.php?id=USER che dovrebbe essere proprio quello che richiedi tu!
    Ultima modifica di trylab : 24-02-2013 alle ore 16.38.31

  9. #9
    Guest

    Predefinito

    Purtroppo non funziona, secondo me non è possibile farlo

  10. #10
    Guest

    Predefinito

    Se includo ad esempio il file css lui lo prende come un username e non funziona, ho usato il primo codice il secondo non funziona.
    Ultima modifica di bookfacesocial : 25-02-2013 alle ore 23.11.31

  11. #11
    L'avatar di trylab
    trylab non è connesso Neofita
    Data registrazione
    02-09-2012
    Messaggi
    24

    Predefinito

    Eh mi sembrerebbe strano che non si possa.

    Prova quest'ultimo, l'ho provato in locale e funziona, speriamo bene.

    Codice:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^([0-9A-Za-z]+)$ profile.php?username=$1 [L]

  12. #12
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    Io farei una richiesta più selettiva con:
    Codice:
    RewriteEngine On
    RewriteBase /
    # Username Redirect
    Rewritecond %{QUERY_STRING} ^username=(.+)
    RewriteRule ^profile\.php$ ./%1 [R=301,L]
    Ultima modifica di darkwolf : 26-02-2013 alle ore 00.13.26

  13. #13
    Guest

    Predefinito

    È quello che dico che funziona! Ilio problema adesso è che quando il browser richiede i css e i js al server, apache pensa che siano username e indirizza le richieste alla pagina dei profili.

  14. #14
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    Prova con il mio codice... dovrebbe andare bene

  15. #15
    Guest

    Predefinito

    Darkwolf il tuo mi da un 404

  16. #16
    L'avatar di trylab
    trylab non è connesso Neofita
    Data registrazione
    02-09-2012
    Messaggi
    24

    Predefinito

    Codice:
    RewriteEngine On
    RewriteBase /
    RewriteRule  ^([A-Za-z]+)/([A-Za-z]+)\.(js|css)$ $2.$3  [L]
    RewriteRule ^([0-9A-Za-z]+)$ profile.php?username=$1 [L]
    Io farei cosi, per risolvere il problema dei js e css...ipotizzando che siano nella tua directory principale...altrimenti bisogna modificare leggermente la cosa ma nulla di che

  17. #17
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    Fa tutto da se e senza richiedere alcuna modifica (ben testato in locale)

    Codice PHP:
    RewriteEngine On
    RewriteBase
    /

    # Username Redirect Start
    # Se la query string è assente...
    RewriteCond %{QUERY_STRING} ^$
    # Effettuo il rewriting ed aggiungo una variabile "semaforo" (rew=1) alla query string!
    RewriteRule ^u-(.*)$ profile.php?username=$1&rew=1 [L]
    # Se la query string è presente e contiene già la variabile "semaforo"...
    RewriteCond %{QUERY_STRING} ^username=(.*)$
    RewriteCond %{QUERY_STRING} !^.*rew=1$
    # Effettuo il redirect 301 dall'url dotato di query string a *tuosito/u-username
    RewriteRule ^.*$ http://localhost/u-%1? [R=301,L]
    # Username Redirect End
    Ovviamente devi modificare "localhost" (ultima riga) in "tuosito" :P
    Ultima modifica di darkwolf : 26-02-2013 alle ore 23.05.25 Motivo: Niente 404 se "nessun id" nella query :P

  18. #18
    Guest

    Predefinito

    Mi dice errore 500

  19. #19
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    Starai sbagliando qualcosa
    A me funziona bene: http://www.darkwolf.it/bookfacesocia...ername=Test123

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •