Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    RewriteRule modificare url con nome utente

    Ciao qualcuno è in grado di aiutarmi?
    sto finendo un sito dinamico dove gli utenti registrati abbiano la possibilità di avere
    il loro "link" personalizzato,

    quindi ho la necessità di trasformare la mia url da:

    www.miosito.it/paginautente.php

    a

    www.miosito.it/pluto

    dove pluto è effettivamente l'utente che si è appena loggato

    con htaccess ho gia modificato la url eliminando l'estensione .php quindi in realtà
    attualmente si presenta cosi:

    www.miosito.it/paginautente


    Il problema è che non mi è ancora chiaro come funziona il RewriteRule non trovo una spiegazione in italiano che mi faccia capire bene

    ciao e grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    con rewriteurl puoi far sì che un utente digiti un URL, ma ne venga richiamata in effetti un'altra (rendendo ciò visibile o meno all'utente)... nel tuo caso bisogna vedere come gestisci il login, dato che il nome dell'utente è chiaramente "variabile" e magari ne potresti avere "infiniti" (virtualmente)... potresti redirezionare qualunque richiesta del tipo ".../nomeutente" per un qualsiasi "nomeutente" alla pagina di login, p.es.

  3. #3
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    Originariamente inviato da eiyen
    con rewriteurl puoi far sì che un utente digiti un URL, ma ne venga richiamata in effetti un'altra (rendendo ciò visibile o meno all'utente)... nel tuo caso bisogna vedere come gestisci il login, dato che il nome dell'utente è chiaramente "variabile" e magari ne potresti avere "infiniti" (virtualmente)... potresti redirezionare qualunque richiesta del tipo ".../nomeutente" per un qualsiasi "nomeutente" alla pagina di login, p.es.
    ciao, mi aggiungo alla conversazione! stavo pensando a come conviene sistemare la struttura delle directory per attuare questa gestione del redirect verso il profilo di uno specifico utente.

    Se si attiva un RewriteUrl su tutti gli indirizzi del formato "www.miosito.it/blablabla", non si avranno poi problemi con tutte le altre pagine del sito? ad esempio, se digito www.miosito.it/index.php, il redirect verrà fatto verso la pagina che gestisce gli utenti e andrà a cercare un utente chiamato "index.php".

    Per evitare questo problema (lo chiedo da inesperto del campo), è possibile una soluzione del genere?:

    RewriteUrl ^([0-9a-z]+)\.php $1.php
    RewriteUrl ^([0-9a-z]+)\ gestioneprofili.php?utente=$1


    è una soluzione valida oppure no? non ho modo di provare prima di un paio di giorni, quindi chiedo a voi così intanto mi illuminate

    EDIT: oppure non avendo specificato nella regex la possibilità di trovare il simbolo punto "." il problema si risolve da solo? posso evitare di mettere RewriteUrl ^([0-9a-z]+)\.php $1.php, l'importante è che non ci siano nickname con il punto no?
    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

  4. #4
    Originariamente inviato da LuckySevenRoX
    ciao, mi aggiungo alla conversazione! stavo pensando a come conviene sistemare la struttura delle directory per attuare questa gestione del redirect verso il profilo di uno specifico utente.

    Se si attiva un RewriteUrl su tutti gli indirizzi del formato "www.miosito.it/blablabla", non si avranno poi problemi con tutte le altre pagine del sito? ad esempio, se digito www.miosito.it/index.php, il redirect verrà fatto verso la pagina che gestisce gli utenti e andrà a cercare un utente chiamato "index.php".

    Per evitare questo problema (lo chiedo da inesperto del campo), è possibile una soluzione del genere?:

    RewriteUrl ^([0-9a-z]+)\.php $1.php
    RewriteUrl ^([0-9a-z]+)\ gestioneprofili.php?utente=$1


    è una soluzione valida oppure no? non ho modo di provare prima di un paio di giorni, quindi chiedo a voi così intanto mi illuminate

    EDIT: oppure non avendo specificato nella regex la possibilità di trovare il simbolo punto "." il problema si risolve da solo? posso evitare di mettere RewriteUrl ^([0-9a-z]+)\.php $1.php, l'importante è che non ci siano nickname con il punto no?
    Ciao e grazie per la tua e l'altra risposta, la tua osservazione:

    "Se si attiva un RewriteUrl su tutti gli indirizzi del formato "www.miosito.it/blablabla", non si avranno poi problemi con tutte le altre pagine del sito? www.miosito.it/index.php il redirect verrà fatto verso la pagina che gestisce gli utenti e andrà a cercare un utente chiamato index.php

    Questo non succede, io come gia scritto in precedenza ho impostato una regola nel htaccess per la quale elimino l'estensione ".php" e se digito una pagina effettivamente esistente:
    esempio: www.miosito/index

    Non sono espertissimo però sembra che la pagina php "prenda la precedenza", infatti se scrivo: www.miosito/lugi mi reindirizza alla pagina di luigi per concludere se scrivo un nome che non "esiste" stampo un echo dove viene mostrato "l'utente cercato non esiste"...

    In definitiva non ho quel problema che giustamente hai pensato.
    sto tentando (invano) di sostituire in: "www.miosito/paginapersonale" la parola "paginapersonale" nel nome utente..

    se qualcuno ha qualche dritta ve ne sono grato :-)
    ciao e hgrazie ancora

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    devi decidere che schema si vuole seguire... è anche possibile nelle regole impostare la traduzione solo se il riferimento non è fatto verso una cartella o un file effettivamente esistenti (quindi se uno digita .../esempio.php oppure .../prova e rispettivamente esiste il file "esempio.php" o la cartella "prova", la traduzione non viene effettuata)... personalmente come "logica" tenderei comunque a creare una macrocartella anche virtuale per gli utenti quindi qualcosa come:

    .../utenti/nomeutente

    e tradurrei tutto ciò che inizia con .../utenti/ appunto

  6. #6
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    Originariamente inviato da eiyen
    è anche possibile nelle regole impostare la traduzione solo se il riferimento non è fatto verso una cartella o un file effettivamente esistenti (quindi se uno digita .../esempio.php oppure .../prova e rispettivamente esiste il file "esempio.php" o la cartella "prova", la traduzione non viene effettuata)
    che regola è questa? come faccio a impostarla? grazie
    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

  7. #7
    LuckySevenRoX, scusami ma non ho ben capito, hai la mia stessa esigenza?

    "IO" ho aperto il post è mi serve una determinata soluzione, e quella proposta a me non va bene, se a te può andare visto che hai scritto "ok come faccio ad applicare la regola?" apriti un post "tuo", mi pare che tu stia utilizzando il mio post per risolvere il tuo problema...

    non puoi dirottare gli utenti che tentano di aiutarmi alla "tua" soluzione,
    non ti pare?

  8. #8
    Utente di HTML.it L'avatar di Enoa
    Registrato dal
    Jul 2005
    Messaggi
    573
    Ma vuoi anche gli url reali senza .php?
    Prova a fare dei test con questi gruppi di regole.
    1- se Multiviews è attivo (Options Multiviews) (non c'è bisogno di regole per "togliere" .php)
    codice:
    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule . - [L]
    
    RewriteRule ([a-zA-Z0-9]*) utenti.php [L]
    2- se Multiviews NON è attivo (Options -Multiviews) ( e non è nemmeno attivabile)
    codice:
    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule . - [L]
    
    RewriteCond %{REQUEST_FILENAME} !\.php$ 
    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ([a-zA-Z0-9]*) $1.php [N,QSA]
    
    RewriteCond %{ENV:REDIRECT_STATUS} ^200$
    RewriteRule ([a-zA-Z0-9]*) utenti.php [L,QSA]
    http://httpd.apache.org/docs/current...gs.html#flag_n

  9. #9
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    Originariamente inviato da LuigiMem
    LuckySevenRoX, scusami ma non ho ben capito, hai la mia stessa esigenza?

    "IO" ho aperto il post è mi serve una determinata soluzione, e quella proposta a me non va bene, se a te può andare visto che hai scritto "ok come faccio ad applicare la regola?" apriti un post "tuo", mi pare che tu stia utilizzando il mio post per risolvere il tuo problema...

    non puoi dirottare gli utenti che tentano di aiutarmi alla "tua" soluzione,
    non ti pare?
    a me sembra che abbiamo la stessa esigenza e infatti nel mio primo intervento ho detto che mi sarei "aggiunto" alla discussione senza dover aprire un'altro post considerando che avrei affrontato lo stesso argomento. Il nostro problema è quello di far reindirizzare le url del tipo www.miosito.it/nomeutente verso un profilo specifico, e dato che eiyen aveva proposto una soluzione a questo problema ho pensato di chiedere "come si applicasse" dato che ero sicuro interessasse anche a te, ma evidentemente non è così, quindi scusa se ho "abusato" del tuo post.
    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

  10. #10
    Ciao LuckySevenRoX, scusami se ti sono sembrato "duro", non volevo mi spiace!!

    visto che hai la mia stessa esigenza, a me la soluzione di creare una macrocartella non piace,
    ieri sera ho fatto un po di prove ma non sono riuscito a risolvere ma credo di esserci vicino,

    se riesco ti dico come ho fatto,
    scusami ancora non volevo davvero è un periodaccio!!

    Luigi

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.