Joomla.it Forum
Componenti per Joomla! => SEO => : bellatrix 18 Jul 2016, 12:50:25
-
Ho messo mano ad un sito che soffriva di un problema sugli url friendly.
In pratica, ora ci ritroviamo le serp piene di indirizzi tipo:
.../index.php?id_lang=1
.../index.php?id_product=18&controller=product&id_lang=1
.../index.php?id_product=9&controller..
ecc.
Come rimuoverli?
L'index.php da htaccess lo rimuovo ma quello che segue, rimane.
Conoscete una regola che con un 301 porti tutto a "/" ?
Da strumenti del webmaster è possibile rimuovere temporaneamente, non più in modo definitivo, quindi, mi rimane da agire solo su lato server.
-
Ciao bellatrix, devi usare le query string, una cosa del tipo
RewriteCond %{QUERY_STRING} ^id_lang=([0-9]+)$
RewriteRule ^index.php$ http://www.nomesito.it/? [R=301,L]
RewriteCond %{QUERY_STRING} ^id_product=([0-9]+)&controller=([a-z])&id_lang=([0-9]+)$
RewriteRule ^index.php$ http://www.nomesito.it/? [R=301,L]
e così via
-
magari per poterle applicare al suo problema andrebbe spiegato come si leggono.....
-
Ciao Giusebos, problemi? potevi scrivere tranquillamente direttamente te la spiegazione, no? ho risposto secco a una precisa domanda, il come leggere le istruzioni credo sia ampiamente esplicitato in rete...
Cmq: tutto ciò che nella URL si trova dopo il punto interrogativo (?) è detto in query string, le regole quindi verificano prima la condizione (RewriteCond, query_string per l'appunto), esplicitano il parametro in query (id_lang e così via, assegando tutti i numeri o tutte le lettere) e poi riscrivono la url (RewriteRule)
Giusebos saprà completare ulteriormente qualora servisse
-
perchè ti scaldi nessun problema, io non sono molto bravo in questo ambito e un minimo di descrizione poteva essere interessante.
Vero è che tante informazioni si trovano in rete, quindi si, se mi dovesse succedere di utilizzarle almeno so che si chiamano query string e quindi con questa chiave effettuerò una ricerca mirata. ;)
-
Ciao bellatrix, devi usare le query string, una cosa del tipo
RewriteCond %{QUERY_STRING} ^id_lang=([0-9]+)$
RewriteRule ^index.php$ http://www.nomesito.it/? (http://www.nomesito.it/?) [R=301,L]
RewriteCond %{QUERY_STRING} ^id_product=([0-9]+)&controller=([a-z])&id_lang=([0-9]+)$
RewriteRule ^index.php$ http://www.nomesito.it/? (http://www.nomesito.it/?) [R=301,L]
e così via
MA GRANDE!
Grazie, Luketto!
-
Mmm... non funziona.
Ti porto questo esempio.
www.*************.it/index.php?controller=stores
Ho aggiunto queste righe:
RewriteCond %{QUERY_STRING} ^index.php?controller=stores$
RewriteRule ^index.php$ http://www.*****************.it/? [R=301,L]
La stringa rimane identica.
Il RewriteEngine è su On.
-
Un'altra questione interessante, Luketto, sarebbe quella di portare su determinate pagine gli utenti o gli spider dei motori (magari con un 301) provenienti da un determinato dominio.
Ad esempio:
bsmnovi.com l'ho fatto puntare su bsmgrafica.it
Sul primo ho agito sui dns (non ho hosting per piazzarci un httaccess).
Ora, bsmnovi.com ha diverse pagine nella cache di Google, ad esempio:
bsmnovi.com/contatti che vorrei fare puntare a bsmgrafica.it/studio-pubblicitario
Secondo te è possibile farlo dall'httaccess di bsmgrafica.it ?
Qualcosa tipo:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} bsmnovi.com/contatti /studio-pubblicitario
...??
</ifModule>
-
Non puoi, a bsmgrafica non arriverà mai un url bsmnovi.
-
Ciao bellatrix, prova a levare il $ dalle istruzioni, magari sul tuo web server fa storie, sul mio funziona.
-
Non puoi, a bsmgrafica non arriverà mai un url bsmnovi.
Eppure, scusa, è possibile bloccare in base al dominio di provenienza
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} dminio.com [NC,OR]
RewriteRule .* - [F]
</ifModule>
Ciao bellatrix, prova a levare il $ dalle istruzioni, magari sul tuo web server fa storie, sul mio funziona.
Provato ma nulla.
Dunque, l'url è questo:
*************/index.php?controller=stores
Ho inserito questa stringa:
RewriteCond %{QUERY_STRING} ^index.php?controller=stores
RewriteRule / [R=301,L]
Il browser risolve qui:
http://www.***************.it/?controller=stores
-
Dunque cerchiamo di capirci, se hai un redirect semplicemente dal dominio A ti porta al dominio B. Se togli il redirect dal dominio A non arriverà mai nulla al dominio B e quindi non puoi intervenire in base al dominio di provenienza. Immagina se fosse davvero possibile per esempio potrei redirezionare le richieste di qualsiasi sito su un mio sito. :)
-
la stringa messa da te è sbagliata:
RewriteCond %{QUERY_STRING} ^index.php?controller=stores
RewriteRule / [R=301,L]
deve diventare
RewriteCond %{QUERY_STRING} ^controller=stores$
RewriteRule ^index.php$ http://www.*************/nomepagina? [R=301,L]
-
Ma certo che no.
Però, puoi manipolare chi arriva e da dove.
La domanda,.quindi, è capire se costoro li puoi mandare su una pagina che vuoi tu.
-
Puoi da .htaccess redirezionare uno per uno, a gruppi come vuoi, sull'altro dominio. Ma devi sempre agire sul dominio bsmnovi.com e lasciarlo attivo finché serve, puoi fare poco o nulla sull'altro dominio.
-
la stringa messa da te è sbagliata
Ho provato questa:
RewriteCond %{QUERY_STRING} ^controller=stores$
RewriteRule ^index.php$ http://www.************/contatti/? [R=301,L]
Niente da fare.
Non ti preoccupare, Luketto. Gli url "farlocchi" stanno indietreggiando nelle serp. Tra un po' spariranno.
Ti chiedo solo di rimuovere quel link sopra, includendo nei tag [ code ] il codice.
Okay, Tomtom...
Grazie anche a te.