- Home
- Categorie
- Digital Marketing
- Posizionamento Nei Motori di Ricerca
- RedirectMatch 301
-
RedirectMatch 301
Buonasera a tutti, ho un problema con htaccess. Per un problema di pagine duplicate vorrei reindirizzarle con il RedirectMatch 301.
Il codice che inserisco è il seguente:
RedirectMatch 301 ^/seconda-dir/(.*)$ http :// www .nomesito.ext/prima-dir/$1 [R=301]
RedirectMatch 301 ^/terza-dir/(.*)$ http :// www .nomesito.ext/prima-dir/$1 [R=301]
RedirectMatch 301 ^/quarta-dir/(.*)$ http :// www .nomesito.ext/prima-dir/$1 [R=301]
Il problema è che il server va in crash errore 500
Dove sbaglio?
-
Se fai il redirectMatch 301 non devi mettere [R=301] alla fine.
Verifica anche che tu abbia attivo mod_rewrite.
-
Perfetto, grazie mille. Ora funziona. Solo che ho notato che questa condizione non è soddisfacente.
Vorrei qualcosa del genere, ma questa condizione si dovrebbe verificare solo se dopo la seconda directori ([0-999999999]) esiste un numero.
RedirectMatch 301 ^/(.)/([0-999999999])-(.)$ h -t- t- p : // w w w . nomesito.ext/directori/$2-$3
Vi è la possibilità?
-
Basta usare [0-9]+ o [0-9]*
-
Ho provato così
RedirectMatch 301 ^/(.)/[0-9]-(.*)$ h -t- t- p : // w w w . nomesito.ext/directori/$2-$3
Ma non funziona, l'indirizzo che restituisce è senza il numero id e con il trattino finale dopo .html-
Vorrei che ciò si verificasse se dopo la seconda directori c'è un numero.
-
ho letto qualcosa quá e la, ho provato questo:
RewriteCond %{QUERY_STRING} ^/(.)/([0-9]+)-(.)$
RedirectMatch 301 ^/(.)/([0-9]+)-(.)$ h--:-//vvv.nomesito.ext/dir/$2-$3però va in lop
cosa sbaglio?
-
Il punto di partenza è questo: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html
Se vuoi usare la rewritecond ti serve una rewriterule e non un redirectMatch. Sono due cose diverse che non giocano insieme.
Qui trovi delle risorse che ti potranno essere utili:
-
Grazie mille per l'interessamento Juanin, ora verifico il tutto
-
Ho letto un po, ho fatto qualche prova ma nulla, crea sempre errore 500, dove sbaglio?
RewriteCond %{QUERY_STRING} ^/([^/]+)/([0-9]+)-([^/]+)$
RedirectRule ^/dir/$2-$3$ accattitipi.sito,ext/([^/]+)/([0-9]+)-([^/]+)
-
RedirectRule non esiste.
RewriteRule.
-
Ho sbagliato scrivendo :bho:, ho provato in questo modo:
RewriteCond %{QUERY_STRING} ^/([^/]+)/([0-9]+)-([^/]+)$
RewriteRule ^/([^/]+)/([0-9]+)-([^/]+)$ accatitipi.sito.ext/dir/$2-$3 [R=301]ma non funge, non riesco proprio a risolvere x
-
Scusa ma con questo cosa vorresti matchare?
([^/]+)Inoltre dall'esempio mostrato all'inizio non mi sembra che tu debba beccare delle QUERY_STRING.
-
Quello che vorrei è questo: se dopo la seconda directory trovi l'indirizzo che inizia con un numero, allora devi riscrivere questo indirizzo
-
Ho provato in questo modo, reindirizza ma va in loop. Non capisco per quale motivo
RedirectMatch 301 /(.)/([0-9]+)-(.) sito.ext/dir/$2-$3
-
Va in loop perché la condizione fa match anche con la versione finale.
Se noti è esattamente uguale.Devi forse escludere le nuove dir finali dal match.
-
Se esclude la dir non trova l'articolo, mi sa che non è possibile risolvere
-
Come l'hai esclusa?
-
RedirectMatch 301 /(.)/([0-9]+)-(.) sito.ext/$2-$3
-
Ma questa non è una esclusione. Io intendevo che nella condizione devi escludere la folder di destinazione nuova visto che è fissa.
-
con la condizione ho fatto in questo modo ma nulla
RewriteCond %{QUERY_STRING} ^/(.)/([0-9]+)-(.)$
RewriteRule ^/(.)/([0-9]+)-(.)$ sito/dir/$2-$3 [R=301]