- Home
- Categorie
- La Community Connect.gt
- Tutto sulla Community
- MOD REWRITE: Nascondere variabili nell' URL
-
Ciao
Se la variabile può essere ricalcolata dallo script (tipo il numero record) puoi anche ometterla, altrimenti credo non ci siano altre soluzioni che inserirla nell'url.
Però non sono un guru, sentiamo anche altri
-
@spiadadda said:
Ciao a tutti,
nel mio girovagare nel web alla ricerca di informazioni sul MOD_REWRITE ho trovato un tutorial o meglio uno script on-line che trasforma gli URL dinamici in url html e fornisce anche il codice da utilizzare per il file .htacces
Questo script è davvero molto simpatico (se un mod mi da l'OK vi posto il link così potete vederlo e utilizzarlo, se ne ritenete il caso, anche voi) e inoltre permette molte cose ed in particolare di personalizzare gli URL con l'aggiunta o la rimozioni di Keywords.La cosa che mi ha colpito è che permette anche di eliminare dall' URL html anche delle variabili che erano presenti nell'URL dinamico.
Mi spiego meglio con un esempio:URL dinamico:
www.mio-sito.it/directory/index.php?var1=10&var2=forum-gt
questo script permette di trasformare questo URL dinamico in questo modo:
www.mio-sito.it/directory/forum-gt.html
ovvero permette di non far comparire nell' URL la variabile numerica " var1=10 ". Fino a qui tutto OK, ma poi mi è sorto un dubbio...... cioè se utilizzo un URL html di questo tipo, come faccio a passare al mio script la variabile " var1=10 "???
Cioè se utilizzassi, ad esempio, questo URL:
www.mio-sito.it/directory/10/forum-gt.html
la variabile " var1=10 " è presente nell' URL e quindi riesco a passarla alllo script, mentre utilizzando questo URL:
www.mio-sito.it/directory/forum-gt.html
Come si fa a passare, allo script, tale variabile???
mi fai avere l'idirizzo per torvare lo scrip cosi ci do un occhio?
grazie
-
ciao,
l'eliminazione dell'id puoi farla solo se puoi ricavarlo da altre parti dell'urlmi spiego meglio:
/news/cellulari.html -> news/index.php?cat=cellulari
[php]
$cat = $_GET['cellulari'];
$id = mysql_fetch_row(mysql_query("SELECT idcategoria FROM categorie WHERE nome='$cat'"));
// dovuti controlli di esistenza
// $id[0]
[/php]
in questo modo ti ricavi l'id a partire dal nome della categorianon conviene invece farlo quando il titolo potrebbe cambiare
se io cambio
/news/cellulari/fuori-produzione-nokia-3310.html
in
/news/cellulari/da-oggi-fuori-produzione-nokia-3310.htmldevo per forza fare un redirect a mano
conviene quindi accodare l'id della notizia
-
@maor68 said:
mi fai avere l'idirizzo per torvare lo scrip cosi ci do un occhio?
grazieScusa se ti rispondo solo adesso, ma solo ora mi sono accorto del tuo post.
Comunque il link è questo:
-
Ciao,
perdonate la domanda da newbie ma il modrewrite posso farlo anche su di una singola pagina?:?
Se la dinamica è indicizzata bene, effettuando il mod con questo tool perdo qualcosa?
La pagina dinamica viene automaticamente convertita o comunque rimane accessibile anche con l'utl dinamico?
CiaoDario
-
se non fai il 301 la pagina dinamica resta indicizzata
l'url dinamico in ogni caso resta sempre raggiungibile (fin quando non elimini il 301)sì puoi fare il rewrite anche solo su una pagina
ciao
-
Grazie per la risposta osvi. Ho convertito tramite il sito mod-rewrite una pagina di un sito fatto con joomla da index.php?option=com_wrapper&Itemid=65 a nuovo-nome.html. Come stringa da inserire nel file .htaccess mi viene indicata la seguente:
RewriteEngine On
RewriteRule ^nuovo-nome.html$ /index.php?option=com_wrapper&Itemid=65Vorrei sapere se RewriteEngine On debbo sempre inserirlo prima di ogni RewriteRule ed un esempio pratico di un 301 da index.php?option=com_wrapper&Itemid=65 a nuovo-nome.html.
Ho trovato un componente per joomla http://www.joomla-addons.org/components/redirect/redirect.html che fa il redirect 301, ma vedo che non effettua modifiche sul file .htaccess.
Ti ringrazio in anticipo per la risposta.
CiaoDario
-
@osvi said:
ciao,
l'eliminazione dell'id puoi farla solo se puoi ricavarlo da altre parti dell'urlmi spiego meglio:
/news/cellulari.html -> news/index.php?cat=cellulari
[php]
$cat = $_GET['cellulari'];
$id = mysql_fetch_row(mysql_query("SELECT idcategoria FROM categorie WHERE nome='$cat'"));
// dovuti controlli di esistenza
// $id[0]
[/php]
in questo modo ti ricavi l'id a partire dal nome della categorianon conviene invece farlo quando il titolo potrebbe cambiare
se io cambio
/news/cellulari/fuori-produzione-nokia-3310.html
in
/news/cellulari/da-oggi-fuori-produzione-nokia-3310.htmldevo per forza fare un redirect a mano
conviene quindi accodare l'id della notiziama quindi quando si vede miosito.eu/Azienda
e non compare Id della pagina come è stato fatto ?Il tutto viene da miosito.eu/pagina.php?id=2
Io sono riuscito a mettere miosito.eu/2/Azienda
Si può fare o no ?
grazie
Cri
-
A parer mio quando non viene passato l'id nell'URL riscritto è perchè si usa un altro modo per estrarre le informazioni necessarie nellapagina alla quale punta l'URL.
Per esempio... sela pagina di atterraggio vuol mostrare tutte le caratteristiche di un'azienda estraendole dal DB, è dotata di tecnologia PHP-MYSQL, e l'indirizzo che vi punta è del tipo miosito.it/nomeazienda, è possibile che (nel caso rischioso in cui i nomi delle aziende siano tutti diversi) estrarre le informazioni anche senza l'id con una query del tipo "SELECT * FROM tabella_aziende WHERE nome='$nomeazienda'.
Ovviamente è una query semplificata. Il nome azienda va estratto dall'url riscritto e messo nella variabile $nomeazienda
Uno sviluppo per un'altra idea,così su due piedi potrebbe essere quello di studiare un metodo con le sessioni... ma ci dovrei pensare per dire se può essere tecnicamente fattibile.
-
@buccia81 said:
A parer mio quando non viene passato l'id nell'URL riscritto è perchè si usa un altro modo per estrarre le informazioni necessarie nellapagina alla quale punta l'URL.
Per esempio... sela pagina di atterraggio vuol mostrare tutte le caratteristiche di un'azienda estraendole dal DB, è dotata di tecnologia PHP-MYSQL, e l'indirizzo che vi punta è del tipo miosito.it/nomeazienda, è possibile che (nel caso rischioso in cui i nomi delle aziende siano tutti diversi) estrarre le informazioni anche senza l'id con una query del tipo "SELECT * FROM tabella_aziende WHERE nome='$nomeazienda'.
Ovviamente è una query semplificata. Il nome azienda va estratto dall'url riscritto e messo nella variabile $nomeazienda
Uno sviluppo per un'altra idea,così su due piedi potrebbe essere quello di studiare un metodo con le sessioni... ma ci dovrei pensare per dire se può essere tecnicamente fattibile.
Si l'avevo pensato pure io ma tipicamente si estrae il record con l'id e non dal nome che potrebbe avere apici o cose strane al suo interno.
-
Certo.
Ma se il sito è stato fatto personalmente e se si conosce esattamente il codice e la struttura del database, nonchè siamo a conoscenza del fatto che i nomi delle aziende sono univoci e non afflitti da caratteri strani... se ci sono tutti questi se...:):D ... si può fare.Cmq sono daccordo che non sia il modo migliore.
Un numerino in fondo ad una stringa riscritta secondo me è lasoluzione più valida.