Visualizzazione risultati 1 fino 16 di 16

Discussione: [htaccess] Creare URL user-friendly [era: Aiuto .htaccess]

  1. #1
    Guest

    Predefinito [htaccess] Creare URL user-friendly [era: Aiuto .htaccess]

    Ciao a tutti, sto creando il mio sito e volevo mettere gli URL Friendly di Wordpress.. cosi mi sono informato e ho scoperto che usa .htaccess..
    vi spiego, ho:

    Codice:
    hxxp://drawchew.altervista.org/article.php?art=nome-articolo
    voglio cambiarlo in:

    Codice:
    hxxp://drawchew.altervista.org/blog/nome-articolo
    cosa devo scrivere nel file .htaccess??

    grazie infinite

  2. #2
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    In teoria wordpress usa htaccess solo in parte, non fa regole precise direttamente con esso. Lo usa solo per indirizzare qualsiasi richiesta verso un suo engine.

    Comunque:
    Codice:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^blog/(.+)$ article.php?art=$1
    Così dovrebbe andare bene, prova.
    Però stai attento, che in questo modo le pagine si trovano in una sottocartella ( blog ) e quindi occhio agli url delle immagini, dei fogli di stile e javascript che dovranno partire dalla root ( / ).
    Ultima modifica di javascripter : 14-06-2011 alle ore 17.03.55

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

    Predefinito

    Comunque ti conviene aggiungere anche la data di creazione del post, perché se due post hanno lo stesso titolo non puoi inserirlo o ti da errore.
    Ciao!

  4. #4
    Guest

    Predefinito

    @javascripter: grazie funziona benissimo :)
    ora ho notato quanti problemi sorgono con questa piccola modifica.. devo per forza mettere tutti gli indirizzi assoluti?

    @radiodelmomento: come potrei fare allr? ho nel SQL un campo con la data e ora (00-00-0000 00:00:00)
    Ultima modifica di drawchew : 14-06-2011 alle ore 17.33.33

  5. #5
    Guest

    Predefinito

    Il CMS che utilizzi è personale, cioè scritto da te, o è un CMS prefatto?


  6. #6
    Guest

    Predefinito

    Scritto da me apparte qualche guida che ho seguito, il resto l'ho fatto io

  7. #7
    Guest

    Predefinito

    Fai un backup della tabella degli articoli, dopo di che aggiungi un campo nella tabella di tipo INT (11) e DEFAULT 0 UNSIGNED.

    Dopo di che lancia questa query:
    Codice:
    UPDATE tabella SET campo_vecchio = UNIX_TIMESTAMP(campo_nuovo)
    Fatto questo cancella il vecchio campo (quello DATETIME) e modifica le query per estrarre la data. Avrai in questo modo un numero e potrai gestire meglio le date e l'ordinamento degli articoli, nonché un risparmio di byte nel DB.

    Fatto questo in PHP basterà usare la funzione date() od un'altra funzione da te scritta, per poter gestire la data.

    Una volta fatto questo cerchiamo una soluzione al mod_rewrite anche se via .htaccess, al contrario di Wordpress, dovrebbe bastarti.


  8. #8
    Guest

    Predefinito

    allora, ho 2 campi nella tabella ' blog ' :
    quello ' blog_date1 ' che contiene la data in DATETIME (00-00-0000 00:00:00)
    quello nuovo ' blog_date ' che contiene INT(11) DEFAULT 0, UNSIGNED

    eseguo:

    UPDATE blog SET blog_date1 = UNIX_TIMESTAMP(blog_date)

    mi da che per esempio la prima riga si cancella blog_date1 e blog_date diventa 0 (come di default);

  9. #9
    Guest

    Predefinito

    Ho sbagliato, ho invertito i due campi

    Sarebbe:
    Codice:
    UPDATE blog SET blog_date = UNIX_TIMESTAMP(blog_date1)
    Sarebbe stato, in ogni caso, impossibile che la query funzionasse dato che il primo campo è DATETIME, quindi mai sarebbe stato salvato un timestamp.

  10. #10
    Guest

    Predefinito

    ah ok :)

    senti e per .htaccess come lo configuro?

  11. #11
    Guest

    Predefinito

    Precisamente cosa passi al parametro art? Cioè, che generi di carattere?

    Comunque potresti fare una roba simile:

    Codice:
    RewriteRule ^blog/(([0-9]{1,2})-([0-9]{1,2})-([0-9]{4}))/([a-z0-9\-_\.]+)$ article.php?art=$5&date=$1 [QSA,L]
    Poi tramite PHP prendi $_GET['date'], ci fai explode('-') oppure list() ed aggiungi alla query la data trasformata in timestamp con mktime().


  12. #12
    Guest

    Predefinito

    ad art ci passo il nome dell'articolo, diviso in " - "
    es. "nome-articolo-diviso"

    appena avro piu tempo ci proverò e ti diro
    intanto grazie per l'aiuto :)

  13. #13
    Guest

    Predefinito

    Quindi caratteri esclusivamente alfanumerici e minuscoli? Perché altrimenti andrebbe modificata la regola.


  14. #14
    Guest

    Predefinito

    ti spiego:

    uso urlencode per caratteri tipo "?"
    e urldecode per ritrasformarli in leggibili a SQL

    allora vediamo, l'es piu appropriato sarebbe " Ciao come, va? " => url " blog/Ciao-come%2C-va%3F " e funziona

  15. #15
    Guest

    Predefinito

    TI sconsiglio di utilizzare quei caratteri nell'url e quindi di utilizzare una funzione che "lo pulisce".

    Potresti, proprio come fa Wordpress, al momento dell'inserimento, inserire un campo nel DB dove inserire il titolo in modo da passare direttamente l'indirizzo e poi estrai il post con quello.


  16. #16
    Guest

    Predefinito

    Ok grazie per tutto :D

Regole di scrittura

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