- Home
- Categorie
- Coding e Sistemistica
- PHP
- Mod rewrite per pagina personale utenti
-
Mod rewrite per pagina personale utenti
Ciao ragazzi vorrei fare in modo che nel mio sito gli utenti abbiano una propria pagina personale del tipo nomesito/nickname
Ho impostato la seguente regola nel file htaccess:
RewriteRule ^(.*) mypage.php?id=$1Usando questa sintassi, adesso tutti link ad altre pagine su cui clicco, mi fanno un redrect alla pagina mypage.php.
Presumo che il problema sia che adesso ogni pagina risponde ai requisiti della rewriterule che ho inserito; come posso fare per ovviare al problema?
Considerate che questa pagina sarà l'unica ad avere un indirizzo di questo tipo , per le altre pagine non avrò problemi a scrivere per esempio : nomesito/articoli/1234.
Posso forse modificare l'espressione e dire che vale se esiste solo una '/'; se sì qual'è la sintassi corretta?
Per quanto riguarda i css forse non vengono più caricati perchè hanno un percorso relativo, devo per forza dargli un percorso assoluto? (senza la rewriterule funziona tutto perfettamente)
grazie in anticipo
-
Con la regola che hai fatto è ovvio sia quello il comportamento.
RewriteRule ^(.*)
ti fa puntare tutte le pagine a mypagepuoi usare una cosa del tipo
RewriteRule ^mypage-(.*) mypage.php?id=$1
e scrivendo mypage- qualcosa ti punta a quella pagina
-
@Thedarkita said:
Con la regola che hai fatto è ovvio sia quello il comportamento.
RewriteRule ^(.*)
ti fa puntare tutte le pagine a mypagepuoi usare una cosa del tipo
RewriteRule ^mypage-(.*) mypage.php?id=$1
e scrivendo mypage- qualcosa ti punta a quella pagina
Ti ringrazio per la risposta, ma era proprio quello che volevo evitare, ci sarà pure un modo per non dover per forza indicare un qualcosa per puntare ad una determinata pagina.
Vorrei fare come fa myspace
Considera che quella pagina è l'unica che vorrei usare con la rewrite rule, le altre possono avere il solito url dinamicograzie 1000 per la risposta
-
Puoi usare le condizioni, cioè se il file che richiedi non c'è punta a quella pagina.
Chiedi ad un mod di spostarti nella sezione giusta che qualcuno che risponde lo trovi
-
@Thedarkita said:
Puoi usare le condizioni, cioè se il file che richiedi non c'è punta a quella pagina.
Chiedi ad un mod di spostarti nella sezione giusta che qualcuno che risponde lo trovi
ok ho inviato un messaggio ad un moderatore, grazie
-
@Thedarkita said:
Puoi usare le condizioni, cioè se il file che richiedi non c'è punta a quella pagina.
Chiedi ad un mod di spostarti nella sezione giusta che qualcuno che risponde lo trovi
Scusa se ti rompo ancora, ho trovato un esempio su internet che mi sembra funzionare:
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /mypage.php?id=$1 [QSA,L]Spero che qualcuno poi mi possa spiegare se è corretto e cosa vuole dire e se questo mi permette quindi di applicare altre regole ad altre pagine.
grazie
-
Puoi fare così:
sito/nickname.nick
o sbizarrirti come vuoi :D, esempio: sito/Jeeves.nick, sito/Jeeves.html o sito/Jeeves.quello-che-vuoi
Ti posto l'.htaccess per fare sito/nick.html
[php]RewriteRule ^(.*).html$ mypage.php?id=$1[/php]
-
@Jeeves said:
Puoi fare così:
sito/nickname.nick
o sbizarrirti come vuoi :D, esempio: sito/Jeeves.nick, sito/Jeeves.html o sito/Jeeves.quello-che-vuoi
Ti posto l'.htaccess per fare sito/nick.html
[php]RewriteRule ^(.*).html$ mypage.php?id=$1[/php]
Scusa, ma così facendo non rischia di creare una regola un pò ambigua?
Teoricamente anche index.html viene interpretata dal server come mypage?id=index
Non sarebbe meglio creare una roba del tipo
[php]RewriteRule ^profilo/([^/]+).html$ mypage.php?id=$1[/php]
scusa se sbaglio;)
-
Si infatti hai ragione
Meglio profilo/Jeeves.html, questa è la regola:
[php]RewriteRule ^profilo/([^/]+).html$ mypage.php?id=$1[/php]
Bisogna effettuare l'escape a .html