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: 2
Visitatori: 42
Totale: 44
Siti amici
Design & Multimedia

Dire e Fare il blog che ti aiuta

Wordpress
Pagine: [1] 2 3 ... 5
 
Autore Topic: Guida A Mod_rewrite (parte 1)  (Letto 48830 volte)
doGmaI
Utente Attivo
****
Posts: 280


Guida A Mod_rewrite (parte 1)
« il: 9 Marzo 2006, 17:36:02 »

Come avevo promesso ho preparato una miniguida su mod_rewrite.
Purtroppo, come si conviene in questi casi windows ha avuto la bella idea di mandarmi a donnine allegre mezzo disco fisso per cui ora mi trovo a dover riformattare e reinstallare tutto da capo
Avevo preparato qualche esempio in più ma questo è quello che sono riuscito a recuperare.
Ho deciso così di dividere la guida in diverse tranche.
In questa parte solo i concetti introduttivi di mor_rewrite con due o tre esempi basilari. Appena finisco di reinstallare mi rifaccio la parte sulle espressioni regolari e gli altri esempietti che mi ero preparato (se me li ricordo ancora Linguaccia )
Intanto ecco quello che è rimasto della guida

Guida a mod_rewrite
Parte 1: concetti introduttivi

Vediamo di chiarire un poco come sfruttare apache e il modulo mod_rewrite.

1. cosa è mod_rewrite
mod_rewrite è un modulo di apache, ovvero un "aggeggio" del programma che rende disponibile il vostro sito su internet che ha come scopo, quello di prendere l'indirizzo digitato dall'utente (URL) e trasformarlo secondo precise regole.
Pensatelo un po' come il traduttore di google: voi inserite una parola e lui vi da la traduzione in un'altra lingua.
Nel caso di mod_rewrite non abbiamo la traduzione da una lingua all'altra, ma da un indirizzo web all'altro



2. perchè usare mod_rewrite
Tre sono le ragioni principali che possono spingere ad utilizzare mod_rewrite
a) indirizzi del tipo http://www.sito.it/index.php?page=7 non sono molto graditi ai motori di ricerca (in particolare a google), e quindi in presenza di indirizzi di questo tipo il nostro sito potrebbe non essere indicizzato completamente
B) tramite mod_rewrite è possibile semplificare un po' alcuni indirizzi difficilmente memorizzabili
c) l'utente non viene a conoscenza della struttura effettiva del sito



3. come funziona mod_rewrite
Senza entrare nel dettaglio tecnico di come funziona mod_rewrite (spiegato per bene qui) diciamo che il funzionamento è questo
a) l'utente digita nel browser l'indirizzo
B) quando schiaccia invio viene fatta un richiesta al webserver
c) apache controlla l'indirizzo con le regole definite in un file apposito per cercare eventuali istruzioni su come comportarsi
d) se trova una regola adatta prende la pagina richiesta (che solitamente è diversa da quella digitata dall'utente) e la invia al browser del navigatore



4. prerequisiti
Prima di gettarci a capofitto negli esempi, è importantissimo prestare attenzione a due cose
a) il modulo mod_rewrite deve essere caricato (altrimenti apache non si sogna minimamente di gestire le "regole" che gli scriveremo)
B) se non esiste, va creato un file .htaccess nella root del vostro sito in cui vanno inserite queste direttive
Codice:
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
La prima riga dice ad apache di attivare la funzionalità di riscrittura degli URL (ovvero quello che andremo a sfruttare noi nei nostri esempi). La seconda riga indica ad apache di seguire i link simbolici (praticamente sono i collegamenti di windows sotto linux, con qualche differenza).

A questo punto siete pronti per dare uno sguardo agli esempi



5. esempi
In questa sezione riporto alcuni esempi, e di volta in volta introdurrò elementi più complicati (almeno per quanto mi permette la conoscenza che ho di mod_rewrite)

5.1. da index.htm a index.php
Note: la pagina index.php sul nostro sito non esiste
Scopo: l'utente digita http://www.sito.it/index.php e non vogliamo che riceva un errore di pagina non trovata
I motivi per applicare una tecnica del genere possono essere molteplici. Ad esempio potremmo aver preparato un sito in php, ma ora ci siamo trasferiti su un sito che non supporta php e vogliamo che l'utente non sia costretto ad aggiornare i propri segnalibri
Per fare questo andiamo ad editare il file .htaccess e scriviamo
Codice:
RewriteRule ^index.php$ index.htm
Cosa fa questa riga del .htaccess? Allora RewriteRule è una parola riservata, che dice ad apache che quella che segue è una regola per riscrivere un indirizzo. Il primo argomento della RewriteRule è l'indirizzo che l'utente digita nel suo browser (quindi qualcosa che contiene index.php) e il secondo argomento è invece la traduzione. In pratica questa riga dice ad apache che, qualora l'utente digiti l'indirizzo http://www.sito.it/index.php la pagina che deve caricare e mandare all'utente è http://www.sito.it/index.htm.

5.2. mascheramento di querystring
Note: le querystring sono quelle parti dell'indirizzo di una paginaa che seguono il ? e solitamente sono i parametri da passare alla pagina perchè venga svolto qualche compito
Scopo: l'utente digita http://www.sito.it/index.php/news.htm. In realtà l'indirizzo è del tipo http://www.sito.it/index.php?sezione=news
Ancora una volta dobbiamo editare il file .htaccess e inserirvi quanto segue
Codice:
RewriteRule ^index.php/(.*)\.htm$ index.php?sezione=$1
Questa regole è leggermente più complicata della precedente. Analizziamola pian piano.
RewriteRule è la solita parola chiave riservata.
^index.php/(.*)\.htm$ dice ad apache di considerare tutti quegli URL che iniziano con index.php, hanno poi una slash (/) e quindi un qualcosa tipo news.htm. Il codice (.*) appartiene all'ambito delle espressioni regolati e vuol dire: considera qualsiasi carattere (.) ripetuto per un numero arbitrario di volte (*) e rendilo una "variabile" (le parentesi tonde).
index.php?sezione=$1 indica ad apache di trasformare l'URL in index.php?sezione=news. Il simbolo $1 (tecnicamente chiamato back-reference), vuol praticamente dire di sostituire in quel punto il valore della prima variabile creata precedentemente con il codice (.*)

5.3. problema dei link relativi
Note: supponiamo di avere una struttura del sito simile alla seguente
Codice:
root
  +--strumenti [directory]
  |    +--login.php [file per il login all'area riservata]
  +--index.php [index del sito]
  +--cancella.php [script per cancellare il contenuto dell'archivio]
e non volere che l'utente debba digitare come indirizzo http://www.sito.it/strumenti/login.php?id=123, sia perchè non vogliamo rendere noto che la pagina login.php accetta un parametro di nome id con un valore numerico, sia perchè vogliamo che google possa indicizzare anche la nostra pagina login.php
Scopo: vogliamo che l'utente digiti qualcosa del tipo http://www.sito.it/login/123
Aggiungiamo in .htaccess una regola RewriteRule come la seguente
Codice:
RewriteRule ^login\/(.*)$ strumenti/login.php?id=$1
Come abbiamo visto nell'esempio 5.2. qui c'è il codice (.*) che "crea una variabile" e il valore di questa variabile sarà poi sostituito a $1.
Questa regola, seppur corretta sintatticamente è abbastanza "debole" per quanto riguarda la sicurezza.
Supponiamo infatti che un utente digiti http://www.sito.it/login/ciao_mamma.
Per come abbiamo definito la regola apache (e mod_rewrite) andranno a vedere se c'è una corrispondenza con la regola preparata. login/ c'è nell'URL e c'è anche nella regola che abbiamo scritto noi, quindi questa regola potrebbe essere quella da applicare. Secondo la regola poi, dopo login/ ci dovrebbe essere una stringa ulteriore e nell'URL abbiamo ciao_mamma che va bene, quindi la regola "combacia" con quanto immesso dall'utente come indirizzo e mod_rewrite effettua la sostituzione, andando a puntare alla pagina http://www.sito.it/strumenti/login?id=ciao_mamma. Come potete notare il problema è che ora l'id passato alla pagina login non è un numero come ci si aspetterebbe ma una "frase". Se il codice di login.php è fatto bene, all'interno ci sarà un controllo che verifica se il valore di id è un numero, altrimenti stampa un messaggio di errore.
Supponiamo anche che questo controllo ci sia, la regola presenta comunque uno svantaggio. In questo caso apache ha dovuto prima effettuare la riscrittura dell'url (operazione "relativamente semplice e rapida"), poi ha dovuto elaborare la pagina login.php e quindi inviare all'utente una pagina con un semplice messaggio di errore: "guarda che l'id doveva essere un numero". Ora immaginatevi questa situazione moltiplicata per 100, 1000, 10.000 pagine. Come potete ben intuire apache è costretto a svolgere un sacco di lavoro inutile solo per visualizzare un messaggio di errore.
E' possibile a tal proposito modificare un poco la RewriteRule in modo da rendere il tutto un po' più efficiente
Codice:
RewriteRule ^login\/([0-9]{1,10})$ strumenti/login.php?id=$1
Come potete notare, la regola si è fatta appena appena più complessa. La differenza sta in quel ([0-9]{1-10]) che sostituisce (.*). Si intuisce quindi che lo scopo sia lo stesso, ovvero quello di creare una sorta di variabile per permettere poi la sostituzione con $1. Che vantaggio porta l'introduzione di questa miglioria? Apache ora, quando va a controllare l'URL immesso dall'utente non accetta più un indirizzo come il precedente http://www.sito.it/login/ciao_mamma ma solo indirizzi del tipo http://www.sito.it/login/XXX dove XXX è un numero. Questo perchè il codice ([0-9]{1,10}) dice che sono ammessi solo i caratteri da 0 a 9 e se ne può trovare solo un numero compreso da 1 e 10. Quindi se l'utente digita http://www.sito.it/login/ciao_mamma apache troverà prima la corrispondeza tra login/ e la prima parte della regola, poi però noterà che ciao_mamma non rientra nei caratteri ammessi (non sono numeri) e quindi non procederà con la traduzione dell'URL nè tantomeno processerà la pagina login.php. Quindi verrà eseguito solo il confronto per vedere se l'URL immesso "combacia" con la regola.
Inoltre questa regola aumenta anche la sicurezza perchè con la regola precedente utente malizioso avrebbe potuto digitare qualcosa del tipo http://www.sito.it/login/./../cancella.php e, a seconda poi del contenuto effettivo di login.php, invocare magari lo script cancella.php (ovviamente questo è solo un esempio, un buon controllo sul valore di id all'interno di login.php avrebbe comunque impedito il verificarsi di un simile problema). Invece forzando apache a considerare solo caratteri numeri questo URL non avrebbe subito alcuna riscrittura, ma sarebbe risultato un semplice errore.

5.4. il problema dei link relativi e delle cartelle inesistenti
Note: supponiamo di avere una struttura del sito simile alla seguente
Codice:
root
  +--strumenti
  |    +--visualizza.php
  +--immagini
       +--vis.gif
A volte capita di scrivere regole del tipo
Codice:
RewriteRule ^visualizza/(.*)/(.*).htm$ strumenti/visualizza.php?sezione=$1&codicelibro=$2
Con questa regola verrebbo intercettati URL del tipo http://www.sito.it/visualizza/libri/150 e trasformati quindi in http://www.sito.it/visualizza?sezione=libri&codicelibro=150.
Una cosa di questo genere, anche se molto bella e utile, ha lo svantaggio però di sballare tutti i link relativi presenti nella pagina.
Se ad esempio nella nostra visualizza.php avessimo un link del tipo !img src="./../immagini/vis.gif"! (dove i ! sostituiscono le parentesi angolari). In questo caso il link sarebbe tecnicamente corretto. Ma se viene effettuata la riscrittura dell'URL tramite mod_rewrite ci troviamo in una situazione un po' strana in cui ci compare magiamente una directory che non esiste, visualizza in questo caso. In pratica è come se il nostro file visualizza.php si trovasse in root/visualizza/strumenti/visualizza.php invece di root/strumenti/visualizza.php e di conseguenza il link all'immagine diventerebbe root/visualizza/immagini/vis.gif che ovviamente non esiste.
Per ovviare a questo inconveniente ci sono tre strade
a) riscrivere la pagina visualizza.php tenendo presente di questa directory fittizia (quindi il link all'immagine diventerebbe !img src="./../../immagini/vis.gif"!
B) utilizzare il flag [L] nella RewriteRule
c) utilizzare il tag base dell'html
« Ultima modifica: 29 Maggio 2007, 08:54:59 da effe8 » Loggato

guardaqua
Supervisore
*
Posts: 717


Guida A Mod_rewrite
« Risposta #1 il: 13 Marzo 2006, 01:50:35 »

Guida cazzutissima, dogmai!
Aspettando ulteriori esempi, mi permetto di aggiungere un paio suggerimenti in ordine sparso:

1) Riscrivendo un indirizzo, si perde l'utilizzo della query-string.
Cosa vuol dire?
che  http://www.sito.it/index.php/news.htm
servendo in realtà il contenuto di
http://www.sito.it/index.php?sezione=news
tramite la regola
Codice:
RewriteRule ^index.php/(.*)\.htm$ index.php?sezione=$1
non accetta ulteriori querystring, ovvero non è possibile passare parametri così
che  http://www.sito.it/index.php/news.htm?chia...re&chiave2=val2

Ora, questo di per sè sarebbe un errore logico perchè se riscrivo l'url di una pagina, novanta su cento lo scopo è proprio quello di NON avere indirizzi dinamici.
Ma se, per un motivo o per l'altro (vuoi per pigrizia, vuoi per querystring imprevedibili nelle regole, vuoi per mancanza di effettive necessità) volessimo riscrivere solo una parte dell'indirizzo e tenere dinamica la querystring, ci accorgeremmo che
Codice:
$_GET['chiave'] == $_GET['chiave2'] == [i]NULL[/i]

Per ovviare, basta accodare una piccola stringa alla regola:
Codice:
RewriteRule ^index.php/(.*)\.htm$ index.php?sezione=$1&%{QUERY_STRING}
Loggato

guardaqua
Supervisore
*
Posts: 717


Guida A Mod_rewrite
« Risposta #2 il: 13 Marzo 2006, 02:30:55 »

Questo è più interessante, perchè ci permette di inserire keyword nell'url. Il che, oltre a favorirci sui motori -a patto di non esagerare- rende gli indirizzi generalmente più comprensibili.
E' un po' quello che fa wordpress (vedi ad esempio i link permanenti del blog di uncino)

Allora, questo metodo presuppone anche un po' di "sporco lavoro" di scripting, ma noi non ci facciamo spaventare, vero?

Ok, supponiamo di avere un DB con le notizie. La tabella notizie è così composta (i titoli non sono casuali e vedremo perchè):
Codice:
---------------------------------------
| id  |   titolo     |    testo       |
---------------------------------------
| 10  |  ciao mamma  |  bla bla bla   |
| 15  |  pippo > 5   |  bla bla bla   |
| 30  |  prozone     |  bla bla bla   |
| 50  |  a bogotà    |  bla bla bla   |
---------------------------------------

Avremo quindi uno script che, prendendo la variabile "id" dalla querystring, estrae dal database la notizia corrispondente (OVVIAMENTE DOPO AVER CONTROLLATO CHE $_GET['id'] SIA NUMERICO), e la mostra.

www.sito.it/news.php?id=30
mostrerà la news dal titolo "prozone".

Facciamone subito il rewrite "semplice":
Codice:
RewriteRule ^news\/(.*)/$ news.php?id=$1
potremo richiamare la pagina di prima con questo indirizzo:
www.sito.it/news/30/

Non vi siete ancora addormentati? Bene, perchè ora viene la parte interessante.
Se al posto di '30', volessimo scrivere il titolo della notizia, ovvero 'prozone' ?

La regola di rewrite cambia poco o nulla:
Codice:
RewriteRule ^news\/(.*)\/(.*)/$ news.php?id=$1&titolo=$2
L'id è stato mantenuto per evitare possibili conflitti nel caso di due news con lo stesso titolo, ma se siamo sicuri che il titolo (o meglio, la stringa che identifica il titolo - vedremo la differenza tra poche righe) è univoco, possiamo tranquillamente ometterlo. Anzi, in questo esempio procederò proprio tenendo per buono quest'ultimo caso: infatti in quello opposto, non c'è nulla da aggiungere.
La regola diventa:
Codice:
RewriteRule ^news\/(.*)/$ news.php?titolo=$1

A questo punto, la parte di rewrite è pronta, già possiamo servire URL come
www.sito.it/news/prozone/
ora non resta che aggiornare lo script in modo che anche la parte php si comporti in modo coerente.
Il concetto di base è semplice: si tratta di prendere la variabile $_GET['titolo'] e, DOPO GLI OPPORTUNI CONTROLLI CONTRO LE SQL INJECTION, fare in base a questa la query al database per estrarre la notizia.
Ma potrebbe risultare ben più comodo tenere lo script così com'è (ovvero, continuare a selezionare le notizie in base all'id) e aggiungere una query che associ al titolo l'id della notizia.

In php:
Codice:
if ( isSet( $_GET['titolo'] ) ) {
  $titolo = mysql_escape_string($_GET['titolo']); //questo è per sicurezza
  $qid = "SELECT id, titolo FROM notizie WHERE notizie.titolo = '".$titolo."' ";
  $q = @mysql_query($getid, $db); //recupero il record corrispondente al titolo
  $id = mysql_fetch_row($q); //recupero la riga corrispondente alla query
  $id_della_notizia = $id['id']; //in questa variabile ho l'ID della notizia
}

Ok, se il titolo fosse sempre una singola parola, andrebbe già bene così.

Però, noi dobbiamo anche curare i casi in cui ci siano spazi, i casi in cui il titolo sia lunghetto, in cui contenga lettere accentate o caratteri speciali...
Si può fare tutto questo in 4 righe di codice:
Codice:
$titolo = $_GET['titolo'];
$1 = array(" ", "à", "è", "ì", "ò", "ù", ">", "<", "/");
$2 = array("_", "a", "e", "i", "o", "u", "-", "-", "-");
$titolo = str_replace($1, $2, $titolo);
$titolo = substr(0, 50, $titolo);
Qualche spiegazione: $1 è un array che contiene i caratteri che consideriamo "indesiderabili" nell'url, ovviamente potete ampliarlo a vostro piacimento. $2 contiene, nelle rispettive posizioni, i caratteri con i quali sostituiremo gli indesiderabili (anche qui la scelta è a vostra discrezione), la terza riga esegue materialmente la sostituzione, e l'ultima tronca la variabile a una lunghezza arbitraria di 50 caratteri.

In questo modo, i titoli dell'esempio diventeranno:
Citazione
ciao_mamma
pippo_-_5
prozone
a_bogota
Il che ci causa decisamente meno problemi nella gestione delle URL!

ULTIMA NOTA.
Ovviamente, quando si tratterà di scrivere i link che puntano a
www.sito.it/news/pippo_-_5/
dovremmo aver cura di:
-estrarre il titolo della notizia, e non (oppure "oltre che") il suo id, dal database
-eseguire sul dato estratto l'operazione inversa a quella mostrata (basterà invertire i valori di $1 e $2), in modo da ottenere link coerenti - che funzionano.

E' tutto, spero di non avervi annoiato, ma soprattutto spero di non aver scritto fesserie dato che l'ho buttata giù di botto e l'ora è un po' tarda.

Buon keyword-based-rewrite a tutti!
Loggato

doGmaI
Utente Attivo
****
Posts: 280


Guida A Mod_rewrite
« Risposta #3 il: 13 Marzo 2006, 20:01:40 »

Questa delle querystring è davvero interessante. Complimenti

PS: sto preparando una piccola "divagazione" sulle RegEx per permettere a tutti di comprendere meglio come creare le regole. Sarà pronta a breve
Loggato

janfri
Appena Entrato
*
Posts: 1


Guida A Mod_rewrite
« Risposta #4 il: 14 Giugno 2006, 21:03:31 »

Buongiorno,
Scusate ma prima che finisca di leggere/studiare la guida (grazie della pubblicazione) mi ponevo le seguenti domande:
- ma la pagina che finale nella regola deve esistere?
- perchè tutti gli esempi della guida fanno riferimento ad una rewrite di una pagine html in pagine php ? Mi sembra più ovvio il contrario o sbaglio?
- Mi è stato indicato di utilizzare questo modulo appositamente per il problema dei motori di ricerca inerente alle query string quindi il mio intento è quello (per esempio) di riscrivere una pagina xxxx.php?www=uu&yy=t in xxxxx.html

è possibile?

grazie in anticipo
Loggato
lacellula
Moderatore
*
Posts: 1 138


Guida A Mod_rewrite
« Risposta #5 il: 14 Giugno 2006, 21:18:25 »

La prima domanda non l'ho capita. Passo alla seconda che poi riassume la terza.

Citazione
- perchè tutti gli esempi della guida fanno riferimento ad una rewrite di una pagine html in pagine php ? Mi sembra più ovvio il contrario o sbaglio?

Il mod_rewrite, mediante il file .htaccess, serve per 'interpretare' il nome di una pagina per poi eseguire un' altra pagina.

In altre parole se tu hai la pagina index.php?op=prodotto&id=12&cat=54 è molto difficile che venga indicizzata dai motori di ricerca. Un buon equivalente sarebbe prodotto_12_54.html.
A questo punto cosa fa l'engine di rewrite? Come il nome stesso suggerisce interpreta la pagina DA HTML a PHP perchè il file vero e proprio che tu hai è .PHP! Lo fa utilizzando delle regole che sono state spiegate egregiamente nella guida.

Io faccio un utilizzo intensivo del mod_rewrite, ad esempio nel sito che ho in firma, e devo dirti che migliora (ma non fa miracoli) l'indicizzazione.

 :ciao:  
Loggato

dam
Appena Entrato
*
Posts: 4


Guida A Mod_rewrite
« Risposta #6 il: 17 Ottobre 2006, 14:12:38 »

Citazione
www.sito.it/news.php?id=30
mostrerà la news dal titolo "prozone".

Facciamone subito il rewrite "semplice":
Codice:
RewriteRule ^news\/(.*)/$ news.php?id=$1
potremo richiamare la pagina di prima con questo indirizzo:
www.sito.it/news/30/
Salve a tutti,

sto impazzendo con il file htaccess,

allora iniziamo da passi semplici:


ho creato news.php e messo nella root del mio sito (dove c'è installato WP2)

e se digito questo ind. funziona:

www.sito.it/news.php?id=30

poi vado sul file .htaccess e aggiungo la riga:

Codice:
RewriteRule ^news\/(.*)/$ news.php?id=$1

il file completo .htaccess risulta il seguente:
Codice:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^news\/(.*)/$ news.php?id=$1
</IfModule>
# END WordPress

ma se dal browser digito questo mi da errore 404 pagina non trovata:

www.sito.it/news/30/

qualche dritta?

grazie!




 
Loggato
doGmaI
Utente Attivo
****
Posts: 280


Guida A Mod_rewrite
« Risposta #7 il: 17 Ottobre 2006, 19:43:00 »

Manca una RewriteCond prima della RewriteRule per la pagina news
Loggato

dam
Appena Entrato
*
Posts: 4


Guida A Mod_rewrite
« Risposta #8 il: 18 Ottobre 2006, 11:51:56 »

Grazie.... avrei un problema diverso adesso:

Con questa regola:
RewriteRule ^news\/(.*)\.html$ news.php?id=$1

se digito www.nomesito.it/news/40.html funziona  Sorriso

mentre con questa:

RewriteRule en/news\/(.*)\.html$ news.php?id=$1

se digito www.nomesito.it/en/news/40.html NON funziona  :pianto:

(per quanto riguarda en le ho provate tutte o quasi :-) le sintassi ma non c'è verso che vada...)

qualche dritta?  :capocciata:

grazie!
 
Loggato
Pixel
Utente
***
Posts: 79


Guida A Mod_rewrite
« Risposta #9 il: 18 Ottobre 2006, 13:55:39 »

prova con
RewriteRule ^en/news\/(.*)\.html$ news.php?id=$1 Occhiolino
Loggato

Binary Code:

01110000 01101111 01110100 01110100 01100101 01110010 00101110 01101001 01110100
Prova a scoprire cosa c'è scritto!!! Wow

Pixel - 01010000 01101001 01111000 01100101 01101100
dam
Appena Entrato
*
Posts: 4


Guida A Mod_rewrite
« Risposta #10 il: 18 Ottobre 2006, 16:29:43 »

purtroppo non funziona nemmeno così...  :pianto:  
Loggato
doGmaI
Utente Attivo
****
Posts: 280


Guida A Mod_rewrite
« Risposta #11 il: 18 Ottobre 2006, 18:09:28 »

RewriteRule ^en\/news\/(.*)\.html$ http://www.nomesito.it/news.php?id=$1

 :ciao:  
Loggato

dam
Appena Entrato
*
Posts: 4


Guida A Mod_rewrite
« Risposta #12 il: 20 Ottobre 2006, 09:17:24 »

:oops: cavolo purtroppo non funziona nemmeno così...

forse devo mettere il file .htaccess dentro la directory /en/ ?

....da quello che ho letto in giro cmq mettendo .htaccess nella directory principale dovrebbe valere per tutte le directory interne...


adesso ci provo!

ciao!
Loggato
doGmaI
Utente Attivo
****
Posts: 280


Guida A Mod_rewrite
« Risposta #13 il: 20 Ottobre 2006, 21:03:56 »

Si nella directory principale vale per tutte...

Come ho detto nell'altra discussione domani vedo con calma se riesco a ottenere qualcosa
Loggato

SteveAgl
Utente Attivo
****
Posts: 239


Guida A Mod_rewrite
« Risposta #14 il: 21 Ottobre 2006, 10:38:44 »

Non riesco a venirne a capo ma ho questo problema:

Ho una url del tipo http://www.pippo.com/dir/prog.php che può avere o meno un parametro dopo.

Vorrei che nel caso vi fosse un parametro es. ?id=1234 la pagina venga reindirizzata normalmente a se stessa, quindi a:

http://www.pippo.com/dir/prog.php?id=1234

Se invece non vi è alcun parametro il reindirizzamento avverrà su una URL diversa sole se lo USER_AGENT non è uno specifico. Diciamo che la regola per reindirizzare il file seza parametri se e solo se non è un determinato user agent funziona benissimo, ma reindirizza allo stesso modo anche nel caso vi siano parametri cosa che incvece non deve fare.

Ci sto giocando or ora ma senza successo... un aiutino? Sorriso Grazie
Loggato

Owner of:  WordPress Italy il tuo WordPress in Italiano.
Personal Blog: 40 Anni Buttati
Pagine: [1] 2 3 ... 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 Ieri alle 22:20:20