Pagina 1 di 1

apache - htaccess e redirezione pagine spostate

Inviato: ven 4 dic 2009, 23:19
da danix
Ciao a tutti, recentemente ho aggiornato un sito che sto curando.
In origine il sito usava del codice php scritto da me, e la struttura dei link era la seguente: www.sito.it/main.php?p=pagina&sect=sezi ... ea&ecc=ecc, però adesso ho spostato tutto in una sottodirectory e sto usando wordpress con i permalink attivati...

La domanda è, come devo impostare l'htaccess per redirigere il traffico proveniente da google, dai vecchi link ai nuovi?? Io ho scritto qualcosa del genere, ma sembra non funzionare:

Codice: Seleziona tutto

redirect 301 http://www.sito.it/main.php http://www.sito.it/site/
che dovrebbe redirigere le richieste dalla vecchia homepage alla nuova presente nella sottodirectory site in cui è installato wordpress... però non funziona, infatti se nell'url scrivo l'indirizzo della vecchia home mi da un 404... :(


Mi dite cosa sto sbagliando?? Grazie in anticipo...

Re: apache - htaccess e redirezione pagine spostate

Inviato: ven 4 dic 2009, 23:25
da conraid

Codice: Seleziona tutto

redirect 301 /main.php http://www.sito.it/site/
ma ti vanno tutte in http://www.sito.it/site/, non c'è una corrispondenza tra pagine così
può provare con qualche regex, ma non saprei

Re: apache - htaccess e redirezione pagine spostate

Inviato: sab 5 dic 2009, 9:47
da danix
si, la corrispondenza tra pagine c'è perchè ho ricopiato i contenuti dal vecchio codice in wordpress, solo che io con le regex (e non solo) sono una frana... mi sa che dovrò provare però...

ad esempio la pagina /main.php?p=gallerie&section=editoria in wordpress è diventata /site/gallerie/editoria/, mi dai qualche spunto da cui partire per scrivere una regex che funzioni con quest'esempio?? Non saprei nemmeno cosa cercare... :(


grazie ;)

Re: apache - htaccess e redirezione pagine spostate

Inviato: sab 5 dic 2009, 10:40
da conraid
il redirect non funziona così, prende solamente indirizzi
o usi redirect_match

Codice: Seleziona tutto

RedirectMatch 301 ^/main.php?p=(.*)&section=(.*)$ http://www.sito.it/site/$1/$2
oppure RewriteRule

Codice: Seleziona tutto

RewriteEngine on
RewriteRule ^/main.php?p=(.*)&section=(.*)$ http://www.sito.it/site/$1/$2 [L,R=301] 
qualcosa di simile insomma

http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html