Salve a tutti,
In passato ho già avuto esperienze di redirect 301 su siti drupal tramite apache mediante .htaccess.
Tutto bene finchè si è trattato di pagine statiche.
Adesso mi trovo con questo problema, un sito le cui pagine hanno questa struttura:
/main/default.aspx?Action=profilo
/main/default.aspx?Action=archivio
ecc.
Ho usato questa regola per il redirect 301:
RewriteCond %{QUERY_STRING} ^Action=archivio$
RewriteRule ^main/default\.aspx$ http://www.miahomepage.it [R=301,L]
Il risultato è che il redirect va a buon fine ma nell'url mi trovo:
http://www.miahomepage.it/?Action=archivio (in pratica mi rimane nell'url la richiesta http)
A me invece serve un redirect pulito in http://www.miahomepage.it
Faccio presente che ho insetio la regola prima di quelle standard Drupal nell'.htaccess
Qualcuno ha esperienze in merito?
Ciao!
Prova con
RewriteCond %{QUERY_STRING} ^Action=archivio$
RewriteRule ^main/default\.aspx$ http://www.miahomepage.it/? [R=301,L]
Nota il ? alla fine dell'url miahomepage.it ...
Fonte: http://dranger.com/weblog/entry/apache_mod_rewrite_strip_query_string.html
Ho scoperto la cosa pochi minuti fa qui (leggere i commenti nel quarto box di codice) e stavo per postare il tutto:
in pratica il "?" alla fine dell'URL evita che venga riscritta la richiesta http
Grazie mille comunque... ma approfitto:
Avendo più pagine da redirigere sulla home come posso scrivere una singola condizione che preveda più possibili variabili?
Esempio: la pagina "archivio", "profilo", "servizi" tutte da rimandare nella nuova Homepage ma senza riscrivere le due righe riportate sopra per ogni link.
Grazie! ;)
Hai provato path redirect? E' un modulo semplice da usare e oi fare il redirect pagina per pagina velocemente.
Si lo conosco ma vorrei evitare di aggiungere altri moduli... la soluzioni .htaccess è più a basso livello!
Grazie comunque! ;)
Dovrebbe bastare quello sotto.. non ho provato cmq..
RewriteCond %{QUERY_STRING} ^Action=
RewriteRule ^main/default\.aspx$ http://www.miahomepage.it/? [R=301,L]
Se avessi tenuto il nome delle nuove pagine uguale avresti potuto prendere un pezzo della query string e metterlo come pezzo del redirect.
Esempio:
RewriteCond %{QUERY_STRING} ^sid=([^&]+)$
RewriteRule mobile.php http://www.canalpda.com/node/%1? [L,R=301]