Joomla.it Forum
Non solo Joomla... => Sezione dedicata ai Server => : FM69 06 Aug 2011, 11:02:40
-
Ciao a tutti.
Ho un problema che non riesco a risolvere. Ho la necessità di fare dei redirect 301 di diverse pagine tramite htaccess, e avendolo già utilizzato in altri siti, la cosa mi pareva abbastanza semplice. Mi spiego. Devo reindirizzare delle URL fatte in questo modo:
www . vecchiodominio.com/public/_cfm/Contenuti.cfm?id_pagina=197&idVoceMenu=504
In htacces inserisco il seguente codice:
redirect 301 /public/_cfm/Contenuti.cfm?id_pagina=197&idVoceMenu=504 http://www.nuovodominio.it/index.php?option=com_content&view=article&id=91&It (http://www.nuovodominio.it/index.php?option=com_content&view=article&id=91&It) emid=193
Facendo così non mi funziona niente.
Ho provato anche a modificare il ? in questo modo \? ma non funziona ugualmente.
Invece se inserisco nella vecchia URL solo questa parte di URL /public/_cfm/Contenuti.cfm mi funziona, ma logicamente questa porzione di URL è uguale per una notevole quantità di URL da reindirizzare.
Avrei bisogno di una mano esperta che sappia indicarmi come agire.
Grazie
-
ciao,
non puoi usare mod_alias per il risultato che intendi raggiungere, dato che, come hai visto, non supporta l'analisi della query string.
devi invece usare mod_rewrite preponendo alla RewriteRule le opportune RewriteCond:
RewriteCond %{QUERY_STRING} id_pagina=197
RewriteCond %{QUERY_STRING} idVoceMenu=504
RewriteRule ^public/_cfm/Contenuti.cfm http://www.nuovodominio.it/index.php?option=com_content&view=article&id=91&Itemid=193 [R=301,L]
ps: non ho tempo di fare la verifica, ma la strada è questa. per altri chiarimenti su mod rewrite vedi:
http://www.joomla.it/articoli-della-community/4040-modificare-gli-url-in-htaccess-con-le-funzioni-di-modrewrite.html
è un mio vecchio articolo, ma spiega le basi.
fammi sapere se funziona
ciao,
marco
-
Ciao Marco, la regola che mi hai messo da esempio funziona alla perfezione.
Un piccolo chiarimento.
nel caso la URL contenesse altre query come da esempio:
http://www.vecchiodominio.com/public/_cfm/prodotti.cfm?prodID=271&catID=271&id_pagina=126&idVoceMenu=445 (http://www.agrex.com/public/_cfm/prodotti.cfm?prodID=271&catID=271&id_pagina=126&idVoceMenu=445)
la regola da seguire sarebbe:
RewriteCond %{QUERY_STRING} prodID=271
RewriteCond %{QUERY_STRING} catID=271
RewriteCond %{QUERY_STRING} id_pagina=126
RewriteCond %{QUERY_STRING} idVoceMenu=445
RewriteRule ^public/_cfm/prodotti.cfm
Giusto per capire il meccanismo.
Funziona anche in questo modo.
Ti sono debitore di un pranzo se capiti da queste parti.
ciao ciao e grazie
Fabio
-
esatto!
(a parte il fatto che hai dimenticato la seconda parte della RewriteRule...)
tieni presente che niente vieta di mettere tutta la query string in una sola riga, ma dovresti essere sicuro che i links siano sempre scritti con i parametri nello stesso ordine. scritta così come è, con una condizione per ogni segmento della query string, è più prolissa ma sicuramente più compatibile.
ciao,
marco