PROZONE powered by Tophost
  Home   Forum   Regolamento Help Login Registrati   *
Statistiche
Utenti
Utenti Totali: 1707
Ultimo utente: xal
Statistiche
Posts Totali: 29470
Topics Totali: 3404
Online Oggi: 51
Presenze Massime Online: 559
(23 Luglio 2008, 14:24:28)
Utenti Online
Utenti: 0
Visitatori: 48
Totale: 48
Siti amici
Design & Multimedia

Dire e Fare il blog che ti aiuta

Wordpress
Pagine: 1 2 3 [4] 5
 
Autore Topic: Guida A Mod_rewrite (parte 1)  (Letto 48831 volte)
SolidSnake4
Nuovo Utente
**
Posts: 5


Re: Guida A Mod_rewrite (parte 1)
« Risposta #45 il: 13 Ottobre 2008, 21:31:35 »

e per fare in modo che vada bene anche per sottodirectory cosa dovrei fare ?

il codice sarebbe questo? quello da provare dico

Codice:
RewriteEngine On
# Options +FollowSymlinks
RewriteBase /
RewriteRule ^articolo\/([0-9]+)\.html$ articolo.php?id=$1
Loggato
lacellula
Moderatore
*
Posts: 1 138


Re: Guida A Mod_rewrite (parte 1)
« Risposta #46 il: 13 Ottobre 2008, 21:45:58 »

Il codice è quello. Se per esempio vuoi far gestire anche la linea

http://www.sito.ext/admin/modifica_articolo/123456.html

Il corrispettivo in htaccess è il seguente (ho tagliato le parti che non si modificano):

Codice:
RewriteRule ^admin\/modifica_articolo\/([0-9]+)\.html index.php?parametro=$1

Nota che $1 è il valore che passi e che rilevi tramite ([0-9]+). Giusto per ripasso Occhiolino

e per fare in modo che vada bene anche per sottodirectory cosa dovrei fare ?

il codice sarebbe questo? quello da provare dico

Codice:
RewriteEngine On
# Options +FollowSymlinks
RewriteBase /
RewriteRule ^articolo\/([0-9]+)\.html$ articolo.php?id=$1
Loggato

SolidSnake4
Nuovo Utente
**
Posts: 5


Re: Guida A Mod_rewrite (parte 1)
« Risposta #47 il: 13 Ottobre 2008, 22:05:09 »

ho capito, e per prendere poi il parametro che mi serve per prelevare le parti dell'articolo titolo testo anteprima ecc ecc devo fare qualcosa, perchè prima il problema era che non mi faceva visualizzare niente
Loggato
doGmaI
Utente Attivo
****
Posts: 280


Re: Guida A Mod_rewrite (parte 1)
« Risposta #48 il: 13 Ottobre 2008, 23:05:34 »

Penso che il codice di doGmaI sia errato. Dovresti provare con il mio.

Si infatti, ma oggi non ci sto con la testa... Il mio codice fa esattamente il contrario di quello che hai chiesto  :-x

Era una prova per scoprire chi di voi aveva studiato per bene la guida  ^_^
Loggato

SolidSnake4
Nuovo Utente
**
Posts: 5


Re: Guida A Mod_rewrite (parte 1)
« Risposta #49 il: 13 Ottobre 2008, 23:09:45 »

Allora mettendo questa regola

Codice:
RewriteRule ^portale\/articolo\/([0-9]+)\.html index.php?id=$1

ho risolto

RewriteRule ^articolo-([0-9]+)\.html$ portale/articolo.php?id=$1

sbagliavo a mettere la posizione della pagina che volevo cambiare  Occhiolino
« Ultima modifica: 14 Ottobre 2008, 17:20:22 da SolidSnake4 » Loggato
ilpazzo
Nuovo Utente
**
Posts: 10


Re: Guida A Mod_rewrite (parte 1)
« Risposta #50 il: 8 Novembre 2008, 13:58:51 »

Ciao, sono un nuovo iscritto che sta afrontando il mod_rewrite.
Innanzitutto ho necessità di chiarire alcune cose.

In tutte le guide che ho trovato si parla sempre di impostazioni che traducano un link del tipo /22/articolo/titolo.html nella sua versione dinamica articolo.php?id=22&title=titolo, ma nel caso che il mod_rewrite non sia attivabile che succede, non funziona più nulla ?
Inoltre i link 'fittizi' html vengono creati dinamicamente giusto ? Quindi io nella mia pagina php avrò sempre una cosa del genere:

<a href="<?php echo '/'.$row[IDARTICOLO].'/articolo/'.$row[TITOLOARTICOLO].'.html'" >$row[TITOLOARTICOLO][/url]

oppure posso lasciare

<a href="articolo.php?id=22&title=titolo">titolo[/url]

e poi lasciare la trasformazione a .htaccess ?

io nei miei tentativi ho notato questo:

se nelle mie pagine scrivevo già il link /22/articolo/titolo.html poi nella barra degli indirizzi mi compariva articolo.php?id=22&title=titolo che non era quello che volevo, quindi come si fa a mascherare il link ?

diversamente invece se lascio articolo.php?id=22&title=titolo nella barra degli indirizzi compariva /22/articolo/titolo.html ma poi però non vengono passate le variabili ................

quindi se potete aiutarmi la mia esigenza è quella di comprendere inizialmente la logica.
Io nel mio sito ho tutti link di questo tipo: http://miosito.com/articolo.php?tab=0 oppure http://miosito.com/articolo.php?tab=0&key=0
che faccio per prima cosa ?
Loggato
lacellula
Moderatore
*
Posts: 1 138


Re: Guida A Mod_rewrite (parte 1)
« Risposta #51 il: 8 Novembre 2008, 15:09:46 »

Ciao, sono un nuovo iscritto che sta afrontando il mod_rewrite.
Innanzitutto ho necessità di chiarire alcune cose.
Ciao e benvenuto.
Citazione
In tutte le guide che ho trovato si parla sempre di impostazioni che traducano un link del tipo /22/articolo/titolo.html nella sua versione dinamica articolo.php?id=22&title=titolo, ma nel caso che il mod_rewrite non sia attivabile che succede, non funziona più nulla ?
Ovviamente non funzionerebbe nulla poiché verrebbe meno la mediazione di apache.
Citazione
Inoltre i link 'fittizi' html vengono creati dinamicamente giusto ? Quindi io nella mia pagina php avrò sempre una cosa del genere:

<a href="<?php echo '/'.$row[IDARTICOLO].'/articolo/'.$row[TITOLOARTICOLO].'.html'" >$row[TITOLOARTICOLO][/url]

oppure posso lasciare

<a href="articolo.php?id=22&title=titolo">titolo[/url]
e poi lasciare la trasformazione a .htaccess?
Dovresti usare la prima opzione che ti restituisce /22/articolo/titolo.html. Però fai attenzione ad una cosa: se lasci la seconda opzione (articolo.php?id=22&titolo=titolo) non è che la pagina non ti viene servita ma, in questo modo, hai un link non ottimizzato. Htaccess non trasforma ma rescrive un url in un altro.

Citazione
io nei miei tentativi ho notato questo:

se nelle mie pagine scrivevo già il link /22/articolo/titolo.html poi nella barra degli indirizzi mi compariva articolo.php?id=22&title=titolo che non era quello che volevo, quindi come si fa a mascherare il link ?

diversamente invece se lascio articolo.php?id=22&title=titolo nella barra degli indirizzi compariva /22/articolo/titolo.html ma poi però non vengono passate le variabili ................
Non ho capito, puoi rifare qualche altro esempio?
Citazione
quindi se potete aiutarmi la mia esigenza è quella di comprendere inizialmente la logica.
Io nel mio sito ho tutti link di questo tipo: http://miosito.com/articolo.php?tab=0 oppure http://miosito.com/articolo.php?tab=0&key=0
che faccio per prima cosa ?
Per prima cosa crea la regola in htacccess e soltanto dopo trasforma i link dei tuoi articoli dalla forma http://miosito.com/articolo.php?tab=0 in http://miosito.com/tab/343. Nel caso di questo link, ad esempio, una regola potrebbe essere
Codice:
RewriteEngine On
RewriteBase /
tab\/([0-9]{1,}) articolo.php?tab=$1
tab\/([0-9]{1,})\/([0-9]{1,}) articolo.php?tab=$1&key=$2
Loggato

ilpazzo
Nuovo Utente
**
Posts: 10


Re: Guida A Mod_rewrite (parte 1)
« Risposta #52 il: 8 Novembre 2008, 15:48:09 »

Ciao, grazie per le risposte. Per il punto dove non mi sono spiegato bene, riprovo così

PRIMO ESEMPIO
nel file .htaccess scrivo

RewriteCond %{THE_REQUEST} tab= [NC]
RewriteCond %{QUERY_STRING} tab=(.+)&key=(.+) [NC]
RewriteRule ^attualita\.php /attualita/%2-%1.html? [NC,L,R]

nella mia pagina ho il link attualita.php?tab=1&key=1 e quando seguo il link, nella barra indirizzo compare giustamente
http://www.miosito.it/attualita/1-1.html, ma però la nuova pagina non legge le variabili ed inoltre non trova i .css perché si è creata una cartella fittizia.



SECONDO ESEMPIO

nel file .htaccess scrivo
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)\.html$ $2.php?tab=$1 [L]
RewriteRule ^(.*)/(.*)/(.*)/attualita\.html$ attualita.php?tab=$2&key=$3 [L]

nella mia pagina php ho un link del tipo notizie/1/1/attualita.html poi quando seguo il link nella barra degli indirizzi compare attualita.php?tab=1&key=1 che non è quello che vorrei. Quindi quello che chiedo è se si può far comparire nella barra degli indirizzi sempre la versione statica cioè notizie/1/1/attualita.html.

NB - non ho la più pallida idea di cosa serva {REQUEST_FILENAME}

Loggato
lacellula
Moderatore
*
Posts: 1 138


Re: Guida A Mod_rewrite (parte 1)
« Risposta #53 il: 8 Novembre 2008, 16:05:14 »

Aspetta mi sa che stai facendo le cose al contrario. La logica di htaccess per quanto riguarda le regole (RewriteRule) è che prima va messo l'indirizzo che in realtà non esiste sotto forma di espressione regolare e poi va messo il file, esistente, al quale vuoi inviare le informazioni. Immagine che hai questa tabella

Codice:
+----+-----------------------+
| ID | ARTICOLO              |
+----+-----------------------+
| 1  | Buono sconto di 100€  |
| 2  | Promozione web        |
| 3  | Strategie di guadagno |
+----+-----------------------+

Senza htaccess avresti, in un documento ipotetico, avresti un codice simile a:
Codice:
<div>
Leggi la <a href="articolo.php?id=2">guida per la promozione dei siti web</a>.
</div>

Se vuoi rendere un sito dinamico devi fare due cose
  • Creare delle regole in un file.htaccess
  • Modificare i documenti o, comunque, il modo con i quali tu gestisci i link
Per la seconda ipotesi ho visto che sai già come fare ma per la prima ritengo che stai confondendo un po' le cose. La regola in htaccess segue la logica

URL RESCRITTO ------> FILE ESISTENTE

In particolare l'url rescritto può avere dei parametri che variano, ad esempio l'ID dell'articolo in questione e che nell'URL RESCRITTO vengono "intercettati" tramite regex. La prima struttura che devi imparare è quella del RewriteRule lasciando perdere, per ora, THE_REQUEST o QUERY_STRING. Nel caso di attualia.php dovresti usare il semplicissimo

Codice:
RewriteEngine On
RewriteRule /attualita/([0-9]{1,})\-([0-9]{1,})\.html attualità.php?tab=$1&key=$1

In questo modo quando tu, nella barra degli indirizzi, scrivi http://www.miosito.com/attualita/123-1234567.html viene passata al file attualita.php con i parametri GET:
tab = 123
key = 1234567
Loggato

ilpazzo
Nuovo Utente
**
Posts: 10


Re: Guida A Mod_rewrite (parte 1)
« Risposta #54 il: 8 Novembre 2008, 16:17:27 »

ok, lasciamo perdere il primo esempio, mi sembra di aver capito che la prassi è definire a priori l'aspetto del link .html(fittizio) che dovranno assumere i link reali dinamici con tanto di query. Quindi

- definisco, a mio gusto, l'aspetto che dovranno avere i link .html(fittizi)
- definisco le regole in .htaccess in modo tale che possa interpretare i miei .html e reindirizzare alle pagine dinamiche reali passando anche le relative variabili $_GET.....

fin qui tutto ok, mi sembra di aver capito ....

la questione che però non ho capito è che quando apache mi reindirizza alla pagina dinamica reale .php, nella barra degli indirizzi compare il link reale, tradotto nella sua forma attualita.php?id=1&key=1. Ma è normale che ciò accada ? perché nella barra degli indirizzo non rimane il link /1/1/attualita.html ?


Loggato
lacellula
Moderatore
*
Posts: 1 138


Re: Guida A Mod_rewrite (parte 1)
« Risposta #55 il: 8 Novembre 2008, 16:59:41 »

Non è affatto normale, nella barra degli indirizzi deve comparire l'url "fittizio". Penso di aver capito perché accade: togli [R].
Loggato

ilpazzo
Nuovo Utente
**
Posts: 10


Re: Guida A Mod_rewrite (parte 1)
« Risposta #56 il: 8 Novembre 2008, 17:19:11 »

ora sto facendo le prove

RewriteEngine On
RewriteBase /
RewriteRule ^([0-9]+)/notizie/([^/]+).html$ $2.php?tab=$1 [L]

così nella barra compare il link fittizio .html però non mi legge i .css e la pagina rimane senza stili. Per ovviare avevo scritto così

RewriteRule ^([0-9]+)/notizie/([^/]+).html$ http://localhost/$2.php?tab=$1 [L] ma in questo modo nella barra compare il link dinamico
tipo attualita.php?id=1&key=1 .........

quindi perché nel primo metodo la pagina non mi legge i fogli di stile ?
Loggato
lacellula
Moderatore
*
Posts: 1 138


Re: Guida A Mod_rewrite (parte 1)
« Risposta #57 il: 8 Novembre 2008, 18:12:12 »

Perché secondo mei hai impostato, nel documento html, un foglio di stile relativo (../../layout/style.css) oppure perché non mettendo uno slash iniziale (layout/stile.css anziché /layout/stile.css) quando apri una pagine "rescritta" in http://localhost/articoli/blah-blah-blah/ il browser tenta di leggere il css in http://localhost/articoli/blah-blah-blah/layout/stile.css che, ovviamente, non esiste Occhiolino
Loggato

ilpazzo
Nuovo Utente
**
Posts: 10


Re: Guida A Mod_rewrite (parte 1)
« Risposta #58 il: 8 Novembre 2008, 21:50:32 »

sì sì, infatti ho risolto con lo slash .............

per il momento grazie, ho raccolto informazioni per cimentarmi nel mod_rewrite del sito, poi vi farò sapere........

 Grossa risata
Loggato
ilpazzo
Nuovo Utente
**
Posts: 10


Re: Guida A Mod_rewrite (parte 1)
« Risposta #59 il: 9 Novembre 2008, 21:17:20 »

allora primo problemino ....

i links si 'relativizzano'.
cioé se io faccio una cosa del genere

RewriteRule ^notizie/articoli/([^/]+).html$ articoli.php?key=$1 [NC,L]

quando raggiungo la pagina filtrata, i links di menù si relativizzano e quindi il ritorno alla home diventa notizie/articoli/index.html che logicamente non la trova e così per ogni regola che scrivo.... non so se mi sono spiegato bene.

Loggato
Pagine: 1 2 3 [4] 5
 
 
Salta a:  

Oggetto Iniziato da Risposte Visto Ultimo Post
Il modulo mi fa arrabbiare! puma512 2 2574 Ultimo Post 8 Febbraio 2009, 23:09:42
da puma512
Le cose da NON fare con AdSense. lacellula 0 3172 Ultimo Post 18 Settembre 2007, 10:32:19
da lacellula
Il Wi-max Come Strumento Anti Digital Divide luke 0 1844 Ultimo Post 11 Gennaio 2007, 15:57:40
da luke
Scrivere Articoli E Guadagnare Con Adsense guardaqua 0 3413 Ultimo Post 2 Febbraio 2006, 13:18:33
da guardaqua
La Psicosi Del Brodo Di Cappone effe8 2 2523 Ultimo Post 2 Marzo 2006, 21:30:15
da step76
Powered by MySQL Powered by PHP Powered by SMF 1.1.8 | SMF © 2006-2008, Simple Machines LLC
Traduzione Italiana a cura di SMItalia

TinyPortal v0.9.8 © Bloc
XHTML 1.0 Valido! CSS Valido!


Ultima visita di Google a questa pagina 31 Luglio 2010, 06:58:30