Back to top

Autore Topic: [RISOLTO] htaccess redirect 301 non funziona  (Letto 5406 volte)

Offline FM69

  • Nuovo arrivato
  • *
  • Post: 28
    • Mostra profilo
[RISOLTO] htaccess redirect 301 non funziona
« il: 06 Ago 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 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
« Ultima modifica: 08 Ago 2011, 11:39:46 da FM69 »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:htaccess redirect 301 non funziona
« Risposta #1 il: 07 Ago 2011, 17:15:29 »
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:

Codice: [Seleziona]
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

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline FM69

  • Nuovo arrivato
  • *
  • Post: 28
    • Mostra profilo
Re:htaccess redirect 301 non funziona
« Risposta #2 il: 08 Ago 2011, 11:39:20 »
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

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

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:[RISOLTO] htaccess redirect 301 non funziona
« Risposta #3 il: 08 Ago 2011, 11:54:17 »
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

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

 



Web Design Bolzano Kreatif