- Home
- Categorie
- La Community Connect.gt
- Tutto sulla Community
- 404, perchè?
-
404, perchè?
ciao, ho seguito la guida di osvi per il mod rewrite e sono riuscito a trasformare la mia vecchia url
www.dominio.com/annunci_categorie.php?genere=1
in
www.dominio.com/nome_categoria/
adesso se nella barra degli indirizzi scrivo il nuovo url mi dà la pagina correttamente, ma se provo a scrivere la vecchia url colla querystring (annunci_categorie.php?genere=1) mi dà errore 404 mentre vorrei che reindirizzasse sul nuovo relativo url, avendo queste vecchie url ben posizionate nei motori di ricerca
in htaccess ho scritto così
RewriteRule ^annunci-([^/]+)/$ annunci_categorie.php?genere=$1
Come si potrebbe risolvere?
-
Se hai pagine ben posizionate ti sconsiglio il mod_rewrite perchè rischi di essere bannato dai motori di ricerca per contenuto duplicato. Il rewriting è consigliato solo in caso di nuovo sito.
Cerca su google e troverai un bel dibattito a proposito.
Il tuo problema purtroppo non sono in grado di risolverlo anche se da quello che scrivi sembra che nella URL "originale" utilizzi il parametro 1 (l'id da quello che capisco), mentre nell'URL "tradotta" passi il parametro nome categoria (che non è l'id).
A meno che tu non faccia un passaggio interno nel codice php dove leghi i due parametri questo non può funzionare.
Ciao
-
quindi mi stai dicendo che facendo il rewrite come lo faccio io mi è impossibile fare un redirect 301 dalla url vecchia alla nuova???
-
Dal tuo post non avevo capito che volevi fare un 301, il problema di essere bannati sussiste quando lo spider trova un contenuto identico su due indirizzi diversi.
Se ora invece ho capito bene la pagina ben posizionata ovvero www.dominio.com/annunci_categorie.php?genere=1 non esiste più e vorresti che cliccando su questo indirizzo ti andasse sulla nuova.
Quindi penso che facendo così hai fatto bene, ora però devi inserire nel .htaccess il comnado del 301 con la nuova struttura del sito modificata dal Rewrite.
-
ciao, ho aggiunto alla fine della riga
** RewriteRule ^annunci-([^/]+)/$ annunci_categorie.php?genere=$1**
questo:
[R=301]
ma non funziona, come mai?
-
Sai suggerirmi la sintassi del 301 perfavore?
-
fermi tutti
il mod_rewrite non è penalizzante per siti già avviati, salvo redirect 301
per fare il redirect non si può usare il semplice R=301 (o almeno, non dentro ai file htaccess, manderesti in loop apache)
ti conviene usare una variabile ausiliaria:
RewriteRule ^annunci-([^/]+)/$ annunci_categorie.php?genere=$1&rew=1
annunci_categorie.php:
[php]if ($_GET['rew']!=1) make_301($new_url);[/php]spero di essere stato chiaro
F.