Visualizzazione dei risultati da 1 a 6 su 6

Discussione: permalink

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    238

    permalink

    Ciao

    Leggo su Google riguardo i permalink
    Un permalink (contrazione della frase inglese "permanent link") è un tipo di URL che si riferisce ad una specifica informazione implementato in modo da non cambiare o almeno per rimanere lo stesso per lunghi periodi di tempo. Il termine è spesso impiegato nell'ambito dei weblog per indicare il link ad un determinato post.
    Ma per quale motivo un link dovrebbe cambiare?
    www.miosito.it/categoria=3&post=4

    La querystring che interroga il db è sempre la stessa
    e fino a quando il post sarà presente fisicamente nel db
    il post sarà sempre raggiungibile con www.miosito.it/categoria=3&post=4

    Allora cosa sono i permalink?

  2. #2
    Se per caso un giorno decidi di rifare il sito, o cambiare il nome alla pagina, potrebbero variare tutti i collegamenti e cose del genere, quindi il permalink ti serve per mantenere l'accesso a quei dati.

    Di regola il permalink è una pagina con il contenuto solamente, al massimo qualche banner e i rimandi alle pagine principali del sito.
    FEDERIX.IT - [Pillola] GRAFICA DEI FORM

    ...ho ancora quella forza che ti serve, quando dici "Si comincia!"

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    238
    m

    devo testarlo concretamente

    Grazie

  4. #4
    Domanda sui permalink:

    Un permalink serve anche per indicizzare meglio le pagine?
    E poi, com'è possibile crearne uno?

    Mi spiego meglio...
    Vedo una pagina con questo url:
    www.miosito.it/42/titolo-della-pagina/

    Ha creato delle sottocartelle virtuali?
    Come si possono gestire?
    Mi serve saperlo perchè devo fare un sito col database, e devo sfruttare i permalink...

  5. #5
    Up di un mese dopo ._.

  6. #6
    Quel link è effettivamente "virtuale". Per generare link come quello, devi affidarti all'.htaccess, un file che permette di specificare al server web (Apache in questo caso) delle direttive da seguire per tutti i file contenuti nella cartella in cui l'.htaccess risiede. Tali direttive possono sovrascrivere quelle di default sel web server.

    Nel tuo esempio, il link:

    codice:
    www.miosito.it/42/titolo-della-pagina/
    probabilmente è in realtà:

    codice:
    www.miosito.it/pagina.php?id=42&titolo=titolo-della-pagina
    Dato che il file pagina.php si trova nella cartella di root del sito, sarà qui che dovrai inserire il file .htaccess (ricorda che funziona SOLO con il web server Apache, sia sotto Linux che sotto Windows! IIS non sa cosa siano i file .htaccess. Inoltre, il punto all'inizio del nome è OBBLIGATORIO e il file non ha estensione, poiché è lui stesso un'estensione delle regole per la cartella in cui risiede. Ecco il perché del punto iniziale).

    Nel file .htaccess indicherai la regola seguente:

    codice:
    RewriteEngine On
    RewriteRule ^([0-9]+)/([^/]+)/$ pagina.php?id=$1&titolo=$2 [L]
    Come vedi, la regola usa le regular expressions per riscrivere il percorso del link. Non si tratta in realtà di una riscrittura, ma di un redirect. In pratica, la regola dice:

    Riga 1: "Attiva il motore di riscrittura degli URI (mod_rewrite)"
    Riga 2: "Reindirizza alla pagina pagina.php qualsiasi pagina che ha un percorso del tipo: NUMERO/TESTO/. Richiama quindi pagina.php passandole in GET il valore di NUMERO come variabile id e di TESTO come variabile TITOLO".

    La [L] finale indica che la riscrittura, una volta terminata correttamente, viene bloccata.
    Le espressioni regolari tra parentesi tonde nel percorso "riscritto" corrispondono, in ordine, ai valori delle variabili di query string: ([0-9]+) viene associata a $1 e ([^/]+) viene associata a $2.

    Nelle tue pagine PHP, devi scrivere i link come fossero link statici, ovvero seguendo la sintassi del percorso riscritto.

    Quindi, quando scrivi un permalink ad un post con id=4 e con titolo="Titolo del post", devi prima di tutto convertire il titolo in URI (converti in minuscolo con strtolower(), usi str_replace() per sostituire gli spazi con dei "-" e per eliminare tutti i caratteri non validi per gli URI, come "!",",","?", ecc. Ti conviene crearti una funzione apposita). Poi scrivi il link nella forma:

    codice:
    http://www.miosito.it/4/titolo-del-post/
    Quando andrai a cliccare sul link, Apache seguirà la direttiva che hai indicato nel file .htaccess e reindirizzerà il browser su:

    codice:
    http://www.miosito.it/pagina.php?id=4&titolo=titolo-del-post
    Ovviamente devi accertarti che il mod_rewrite di Apache sia attivo sul server, altrimenti la cosa non funzionerà (se lo è, è indicato sotto la voce "Modules" della pagina generata dalla funzione phpinfo()). Per il resto, è utile studiare bene le regular expressions.

    PS: piccola curiosità su Aruba che mi ha fatto perdere mesi! Se il nome del file reale a cui il browser reindirizza (nel nostro es. "pagina") lo usi anche per indicare una "cartella virtuale" all'interno del percorso riscritto (ad es. ^pagina/([0-9]+)/([^/]+)/$), il rewrite non funziona!!!

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.