Quattro opzioni di reindirizzamento: Java Script, html, php e htaccess. Reindirizzamento a un'altra pagina utilizzando JavaScript Reindirizzamento Javascript alla stessa pagina

Buona giornata, iscritti e ospiti del mio blog. Oggi voglio raccontarvi un materiale molto importante e richiesto, i cui meccanismi sono utilizzati in molti siti e servizi web. Vale a dire, spiegherò cos'è il reindirizzamento in JavaScript.

In questo post troverai molte informazioni utili sui reindirizzamenti, scopri il suo settore principale. Ti mostrerò anche come creare un reindirizzamento usando php, html e persino .htaccess. E naturalmente troverai esempi dopo ogni capitolo chiave. Ora passiamo al debriefing!

Che cos'è il reindirizzamento e per quale scopo è stato creato?

Tradotto dall'inglese redirect significa "reindirizzamento, reindirizzamento". Infatti, con l'aiuto del reindirizzamento, gli utenti vengono automaticamente reindirizzati ad altre pagine di risorse web utilizzando un ancoraggio predeterminato (link).

Ognuno di voi almeno una volta ha affrontato tali situazioni quando si accede a un sito e questo ti reindirizza alla stessa pagina, situata solo da un nuovo collegamento. Succede anche che gli utenti vengano reindirizzati ad altre pagine o annunci pubblicitari. Tutto questo viene fatto utilizzando i reindirizzamenti.

Grazie a questo meccanismo, puoi gestire in modo flessibile il reindirizzamento: impostare il passaggio a nuove pagine con un ritardo, in caso di cambio di dominio, reindirizzare l'utente a un nuovo indirizzo tramite url senza azioni aggiuntive di quest'ultimo, aprire le pagine in modo nuova scheda, organizzare un reindirizzamento in caso di inoltro non riuscito, ecc.

L'oggetto è responsabile di tali azioni in JavaScript. posizione.documento... In effetti, questo oggetto ha una serie di proprietà necessarie per ottenere informazioni complete sulla pagina web (pagina).

Per ora, parlerò di una proprietà utilizzata per reindirizzare le pagine: href. Se vuoi approfondire le tue conoscenze, cerca le informazioni nella documentazione.

Come posso implementare il reindirizzamento utilizzando document.location.href?

Così, posizione.del.documento.href contiene il percorso completo delle pagine del servizio Web. Se ora esegui la riga document.write (document.location.href) in qualsiasi editor online, riceverai un collegamento completo alla scheda in cui è stato scritto nella risposta.

Per implementare un reindirizzamento, devi solo assegnare un indirizzo diverso a questa proprietà.

Ho deciso di fare un esempio su un compito specifico, che spesso si trova tra i compiti in progetti reali.

Quindi, hai una sorta di risorsa web situata al link, ad esempio http://pfd.ru. Ma nel tempo hai acquisito un nuovo dominio più adatto e quindi il sito è stato spostato in un nuovo indirizzo: http://ddd.ru.

Poiché gli utenti sono abituati al vecchio collegamento o hanno aggiunto questo servizio ai segnalibri con il vecchio indirizzo, è necessario implementare una transizione automatica. Allo stesso tempo, è necessario implementare l'attività in modo che i clienti possano vedere le modifiche. Per fare ciò, è necessario scrivere la seguente implementazione software:

Inoltro chiamata

Ora il sito dell'azienda "****" si trova ad un nuovo indirizzo: http://ddd.ru... Dopo 6 secondi, verrai reindirizzato automaticamente ad esso. Se la transizione non è avvenuta automaticamente, segui il link specificato: http://ddd.ru

Come piccolo bonus, ho deciso di allegare un altro esempio di codice che contiene domande molto frequenti. A volte ci sono altre situazioni in cui, insieme al reindirizzamento, è necessario trasferire alcuni dati alla pagina aperta tramite il metodo POST. Questo meccanismo può essere implementato anche tramite js.

Il tag viene utilizzato per inviare qualsiasi informazione nel markup html

.

http: // ddd.ru »metodo =" post "> ...

Ora, utilizzando una funzione scritta in JavaScript, i dati vengono inviati:

1 2 3 4

Ti ho mostrato come implementare i reindirizzamenti usando il linguaggio js. Ed ora passiamo all'analisi dello stesso meccanismo, ma in altri linguaggi di programmazione.

Reindirizzamento a html

Per reindirizzare l'utente a un altro servizio in html, utilizzare il tag .

Nell'esempio, ti reindirizzerò al sito ufficiale del W3C. Esegui il codice allegato in qualsiasi editor disponibile e analizza il suo lavoro.

1 2 3 4 5 6 7 8 9 Reindirizzamento HTML

Reindirizzamento HTML

Ti parlerò un po' degli attributi dei tag .

significa che un nuovo file si aprirà nella finestra del browser corrente. L'elemento di contenuto è responsabile del tempo di reindirizzamento (in questo caso, 3 secondi) e dell'indirizzo a cui verrà effettuata la transizione.

Tuttavia, questo approccio non funziona sempre.

Reindirizzamento PHP

In php viene utilizzata anche la posizione e si inserisce nell'intestazione, come nella versione precedente. Si presenta così:

intestazione ("Posizione: https://www.w3.org/");

Dopo aver elaborato la riga, il browser restituirà un codice di stato di reindirizzamento a tre cifre. Se il tipo di reindirizzamento non è specificato negli attributi dell'intestazione, ad es. codice 201 o 3**, viene automaticamente restituito 302, che indica uno spostamento temporaneo.

Voglio evidenziare un dettaglio importante. Oggi tutti gli sviluppatori che si rispettino usano il reindirizzamento 301. Ti permette di:

  • Riassumere importanti indicatori dei servizi web, in conseguenza dei quali, anche spostandosi su un nuovo indirizzo, il sito non perde le sue posizioni nei motori di ricerca;
  • Incolla i nomi di dominio con e senza un triplo "www";
  • Reindirizza robot e utenti a nuove pagine Web funzionali anziché a quelle obsolete.

Direttiva Htaccess

Qui arriviamo senza problemi a una direttiva .htaccess importante, molto utile, ma anche complessa. È un documento di configurazione per Apache e server simili. Il suo effetto si applica solo alla directory in cui si trova. Le possibilità si applicano anche alle sottodirectory.

Un reindirizzamento 301 è un modo per reindirizzare costantemente i motori di ricerca e i visitatori del sito a un indirizzo diverso da quello originariamente richiesto. Tale risposta dal server indica che il vecchio URL ha perso la sua rilevanza, la pagina è stata spostata. Dopo la reindicizzazione, Yandex e Google capiranno dove ora vuoi portare i visitatori e offriranno agli utenti un nuovo indirizzo.

Sorprendentemente, ma vero: utilizzando un reindirizzamento, puoi trasformare una perdita in una vittoria e attirare ancora più traffico sulla tua risorsa. Ma ne parleremo più avanti.

Se desideri impostare correttamente un reindirizzamento 301, assicurati di consultare la nostra guida dettagliata con esempi di codice per tutti i casi e vari hack di vita.

A cosa serve il reindirizzamento 301?

Il codice 301 è un'opzione efficiente e facile da implementare per reindirizzare una pagina web. Questo è un modo conveniente per tenere traccia del ranking di una pagina specifica sul tuo sito.

Principali motivi per aggiungere un reindirizzamento 301:

  • salvare il contenuto dei "segnali utente accumulati".
  • con il trasferimento del peso del link alla nuova pagina;
  • reindirizzare il traffico da altri indirizzi a quello desiderato;
  • in caso di rebranding e cambio dominio, per non perdere clienti;
  • pagine in movimento;
  • incollaggio (con e senza www, http e https);
  • eliminare le pagine duplicate.

Attenzione! Scegli un indirizzo strategicamente più importante, preferito dai visitatori e dai motori di ricerca.

Un reindirizzamento può essere definito una sorta di salvavita. Se sposti l'intero sito o singole pagine, manterrà tutti i frutti del lavoro svolto: l'autorevolezza del nome a dominio e il posizionamento nella ricerca. La cosa principale è usare il reindirizzamento come previsto.

Oggi riceverai 22 esempi di installazione specifici per il codice 301 e cinque importanti linee guida. Cominciamo con quest'ultimo!

Importante! Gli errori nelle impostazioni dei reindirizzamenti riducono l'effetto del loro utilizzo.

1. Evita di seguire i reindirizzamenti. Ogni reindirizzamento successivo aumenta il carico sul server e riduce l'efficacia dei reindirizzamenti.


Quello corretto in questo esempio dovrebbe essere un reindirizzamento dal passaggio 1 al passaggio 3.

2. Posiziona le regole di reindirizzamento dalle regole private a quelle generali, poiché le contraddizioni tra quelle private e quelle generali potrebbero farle non funzionare. Se i privati ​​sono inferiori a quelli generali, in caso di contraddizioni nelle regole, quelli generali funzioneranno come quelli che vengono per primi nella lista.

3. Poiché i browser di solito ricordano i reindirizzamenti, è meglio controllare il codice di stato HTTP tramite un servizio dedicato.

4. I reindirizzamenti non devono essere ciclici, cioè la pagina non può collegarsi a se stessa.

Un esempio di reindirizzamento circolare: da una pagina senza barra alla fine dell'URL, c'è un reindirizzamento 301 a una pagina con una barra, su cui è presente un reindirizzamento 302:


5. Un reindirizzamento utile è quello che porta a una pagina che ripete quella richiesta in tutte le sue sfumature.

Tipi popolari di reindirizzamenti

Vuoi sapere come effettuare una deviazione di chiamata? Innanzitutto, devi familiarizzare con i nomi e le caratteristiche degli stati più utilizzati.

301

Questo è un reindirizzamento permanente, che indica che l'indirizzo della vecchia pagina deve essere considerato obsoleto, il contenuto è in una nuova posizione. Trasferisce quasi tutto (nessun dato esatto) il peso del collegamento a un nuovo documento e incolla le metriche interne accumulate.

302

È un reindirizzamento temporaneo. Non incolla le metriche interne accumulate della pagina.

Lo stato della risposta del server dipende dalla versione del protocollo HTTP:

  • HTTP 1.0 - la pubblicazione corrente è stata temporaneamente spostata in un URL diverso (Spostato temporaneamente);
  • HTTP 1.1 - documento non trovato (la risposta cambia in Trovato).

307

307 Spostato temporaneamente è adatto solo per casi eccezionali, ad esempio spostamenti di contenuti a breve termine durante la manutenzione.

Meta aggiornamento

I meta aggiornamenti sono reindirizzamenti che avvengono non a livello di server, ma sulla pagina stessa. Molto spesso, un tale codice di risposta è associato a un conto alla rovescia di cinque secondi, integrato dal testo "Se la transizione non si è verificata in cinque secondi, fai clic qui".

Importante! Non è necessario utilizzare un reindirizzamento permanente se il tuo trasferimento è temporaneo o correlato a problemi con i vecchi nomi di dominio. Quando ricevi un ban o un filtro, trasferirai i problemi passati a un nuovo indirizzo.

Qual è la differenza tra reindirizzamenti permanenti e altri?

I reindirizzamenti 302 e 301 sono simili. Tuttavia, nella maggior parte dei casi, l'inoltro permanente sarà la soluzione migliore.

Questi codici di risposta HTTP non sono ugualmente percepiti dai robot e, di conseguenza, influiscono sui risultati di ricerca in modi diversi. Un reindirizzamento 301 è un segno che il motore di ricerca dovrebbe dimenticare il vecchio indirizzo e non tornarci mai più. Un 302 segnala il proseguimento dell'indicizzazione dei contenuti inseriti nella pagina originariamente richiesta.
In caso di reindirizzamento 301, la pubblicazione scaduta non verrà più visualizzata nei risultati della ricerca. Con un reindirizzamento 302, entrambe le pagine saranno presenti nell'indice.

È un dato di fatto, è meglio utilizzare sempre il codice 301.

  • ci sono collegamenti nella pagina richiesta che devono continuare ad essere indicizzati;
  • l'indicizzazione della nuova pagina non è critica.

Esperienza dalla pratica: 301 reindirizzamenti contro 302

Lo stato 302 è una misura temporanea che informa i motori di ricerca che sono in corso lavori tecnici sulla vecchia pagina e devono essere salvati nei risultati della ricerca.

Diamo un'occhiata a un esempio. Il sito ha cambiato la zona del dominio, quindi ha acquisito anche il protocollo sicuro https. Tuttavia, gli sviluppatori non hanno impostato un reindirizzamento permanente, ma temporaneo.

Durante il lavoro di 302 reindirizzamenti, c'erano 3 copie dello stesso sito Internet nell'indice di Yandex e Google. Per questo motivo si è verificato un calo significativo delle posizioni.

Quando l'errore è stato corretto, i robot hanno incollato i duplicati, escludendo le pagine extra dai loro risultati di ricerca. Il sito è tornato di nuovo al TOP.

Reindirizzamento 301 vs Canonico

Nonostante alcune sfumature, i motori di ricerca hanno stabilito regole chiare per l'utilizzo dei comandi. Ecco come Google e Yandex li interpretano:

  • 301 - “La mia pagina si è spostata per sempre in un altro posto, non tornerà più. Per favore rimuovilo dal tuo indice e trasferisci il peso sul nuovo documento. "
  • Canonico- “Ho diverse versioni del contenuto della pagina. Scansiona la mia copia prioritaria, che ho contrassegnato come canonica. Anche il resto dei materiali sarà disponibile per gli utenti, ma non è necessario indicizzarli".

Quando è meglio utilizzare un reindirizzamento 301:

  • questo è il metodo migliore predefinito;
  • per 404 errori e contenuti che non sono più rilevanti, ma lo hanno
  • link esterni e molto traffico;
  • quando si cambia un dominio a seguito di rebranding o vendita di una risorsa;
  • per una pagina che è stata spostata in modo permanente.

Rel = casi d'uso "canonici":

  • se l'articolo ha duplicati di cui i visitatori hanno bisogno, ad esempio, descrizioni
  • lo stesso prodotto, ma di colore diverso;
  • quando il reindirizzamento permanente è difficile da implementare;
  • per domini incrociati con articoli simili;
  • a indirizzi diversi dello stesso contenuto (smistamento catalogo).

Dove è impostato il reindirizzamento 301?

A seconda del motore, l'inoltro può essere effettuato in diversi modi.

.htaccess o httpd.conf per Apache

Questo è un metodo popolare per la sua semplicità, per cui è necessario creare un file chiamato .htaccess nella cartella del sito. Oppure modificalo se è già fornito dal motore.

Importante! Prima di apportare qualsiasi modifica, fai un Backup del file modificato (o dell'intero sito)

Per il reindirizzamento permanente, scrivi all'inizio del file, sostituendo i tuoi dati:

  • Reindirizza l'intero sito a un altro indirizzo:

Reindirizzamento / http://new-site.ru/

  • Reindirizzamento da una pagina all'altra:

Reindirizzamento 301 / pagina-1 .html / pagina-2 .html

  • Reindirizzamento da www a non www:

RewriteEngine attivato
RewriteCond% (HTTP_HOST) ^ www.example \ .ru
RewriteRule ^ (. *) $ Http://example.ru/$1

  • Reindirizzamento da HTTP a HTTPS

RewriteEngine attivato
RewriteCond% (HTTPS) disattivato
RewriteRule (. *) HTTP: //% (HTTP_HOST)% (REQUEST_URI)

Si noti che quando si lavora con un file, il comando avviene a livello di server con Linux o Apache OS con il modulo Mod_rewrite attivato.

È possibile modificare il reindirizzamento .htaccess con il file di configurazione hpptd.conf. In questo caso sarà possibile creare meno carico sul server, ma solitamente i webmaster non hanno accesso ad esso.

Tramite plugin nel CMS

È facile impostare un reindirizzamento a un altro sito utilizzando un plug-in speciale. Quindi, per WordPress, l'estensione Simple 301 Redirects è adatta. L'unico inconveniente del modulo aggiuntivo è la generazione manuale dell'elenco degli indirizzi per l'inoltro.


Attraverso la condizione PHP

Questa soluzione è adatta a chi conosce bene la struttura di un progetto web e conosce PHP. Se il sito è realizzato su CMS, prova ad aprire il file index.php nella root del motore e scrivi lì:

if ($ _SERVER ["RICHIESTA_URI"] == "/index.php") (
intestazione ("Posizione: /", VERO, 301);
Uscita ();
}

(specificare il vecchio URL nella prima riga e quello nuovo nella seconda)

In alternativa, il reindirizzamento PHP può essere eseguito inviando intestazioni (script):

intestazione ("HTTP / 1.1 301 spostato definitivamente");
intestazione ("Posizione: http: //www.newdomain.ru/newdir/newpage.htm ");
Uscita ();
?>

Reindirizzamento ASP

<% @ Language= VBScript %>
<%
Risposta .Status = "301 spostato in modo permanente"
Risposta .AddHeader "Posizione", "http: //www.new-url.com"
risposta .fine
%>

Reindirizzamento ASP.NET

Trova il file web.config nella radice del tuo sito e incolla la sintassi nella sezione:

< script runat= “server ”>
private void Page_Load (mittente dell'oggetto, System.EventArgs e)
{
Risposta .Status = "301 spostato in modo permanente";
Risposta .AddHeader ("Posizione", "http: //www.new-url.com");
}

Reindirizzamento ColdFusion

<.cfheader statuscode="301″ statustext="Moved permanently">
<.cfheader name="Location" value="http://www.new-url.com">

Reindirizzamento JSP (Java).

Il metodo presentato è adatto per piccoli aggiustamenti di progetti semplici. Il codice può essere scritto in un solo file e il file stesso può essere aggiunto a tutte le pagine necessarie specificando


< script type= "text/javascript" >
posizione = "https://yandex.ru";

(reindirizzamento ad altro sito)

Script CGI in PERL

$ q = nuova CGI;
stampa $ q -> reindirizza ("http://www.new-url.com/");

Rubino su rotaie

def vecchio_azione
headers ["Stato"] = "301 spostati definitivamente"
redirect_to "http://www.new-url.com/"
fine

Reindirizza a nginx

if ($ host = "www.dominio.com") (
riscrivi ^ (. *) $ http: //domain.com$1 permanente;
}

Reindirizzamento HTML

Se hai un semplice sito statico e devi cambiare solo una pagina, esegui un reindirizzamento HTML. Per fare ciò, devi aggiungere uno speciale meta tag all'interno.

Ecco un esempio di utilizzo di un reindirizzamento a un'altra risorsa dopo un ritardo di 5 secondi:

<meta http-equiv = "aggiorna" contenuto = "5; https: // sito">

Se metti un valore di 0 invece di 5, il lettore andrà immediatamente al sito https: //.

Tuttavia, per i siti di grandi dimensioni, il reindirizzamento HTML è difficile e richiede tempo, quindi è meglio dare la preferenza a un'altra opzione.

Reindirizzamenti per tipo di attività

È ora di eliminare le copie per migliorare i risultati di ricerca!

Reindirizzamento con www / senza www

Per configurare il mirror principale aggiungi le seguenti righe al file .htaccess:

RewriteCond% (HTTP_HOST) ^ www \. (. *) $
RewriteRule ^ (. *) $ HTTP: //% 1 / $ 1

Puoi anche reindirizzare da www usando la sintassi:

RewriteEngine attivato

RewriteCond% (REQUEST_URI)! ^ / Robot. *
RewriteRule ^ (. *) $ Http://site.ru/$1

Unione in blocco index.php, index.html, index.htm, index.asp

RewriteCond% (LA_RICHIESTA) ^ (3.9) \ / indice \.(Php | html | htm) \ HTTP /
RewriteRule ^ (. *) Indice \. (Php | html | htm) $ http://site.ru/$1

Reindirizzamento con http e https

Quando si passa a un protocollo sicuro, è necessario aggiungere:

RewriteCond% (HTTPS) = di

RewriteCond% (HTTP: X-HTTPS) 1
RewriteRule ^ (. *) $ HTTP: //% (HTTP_HOST) / $ 1

Reindirizzamento da https a http

RewriteCond% (HTTPS) = attivo
RewriteRule ^ (. *) $ HTTP: //% (HTTP_HOST) / $ 1

Unire i duplicati con una barra alla fine dell'URL

Per rimuovere la barra in tutto il sito utilizzare il codice:

RewriteCond% (REQUEST_URI)! \? RewriteCond% (REQUEST_URI)! \ & RewriteCond% (REQUEST_URI)! \ = RewriteCond% (REQUEST_URI)! \. RewriteCond% (REQUEST_URI)![^ \ /] $ RewriteRule ^ (. *) \ / $ / $ 1

Per reindirizzare da pagine senza barra a barra, aggiungi:

RewriteCond% (REQUEST_URI)! \? RewriteCond% (REQUEST_URI)! \ & RewriteCond% (REQUEST_URI)! \ = RewriteCond% (REQUEST_URI)! \. RewriteCond% (REQUEST_URI)! \ / $ RewriteRule ^ (. * [^ \ /]) $ / $ 1 /

Come faccio a rimuovere più barre o trattini nella barra degli indirizzi?

In caso di barre aggiuntive nell'URL, devi reindirizzare alla pagina con una barra:

www.site.com/catalog/page-1.html:
RewriteCond% (REQUEST_URI) ^ (. *) // (. *) $
Riscrivi regola. % 1 /% 2

Per incollare insieme il cruscotto, scrivi da www.site.com/catalog/page-1.html:

RiscriviCond% (REQUEST_URI) ^ (. *) - (. *) $
Riscrivi regola. % 1-% 2

Consigli! Per semplificare il processo, è meglio che i principianti utilizzino i servizi di generazione di reindirizzamenti. Sostituendo i tuoi dati, riceverai immediatamente un codice già pronto:
http://www.webconfs.com/htaccess-redirect-generator.php
http://www.rapidtables.com/web/tools/redirect-generator.htm

Reindirizza un URL a un altro indirizzo

Il reindirizzamento della pagina più veloce a un nuovo indirizzo è:
Reindirizzamento 301 /oldpage.html http://www.site.com/newpage.html

Sei pronto a trovare soluzioni per casi fuori standard? Allora continua a leggere!

Con conservazione dei parametri GET

RewriteCond% (REQUEST_URI) ^ / componente / virtùmart / $ - url prima del parametro

RewriteCond% (QUERY_STRING) ^ page = shop.browse & category_id = 12 - valore dopo il parametro (invece di? = Put ​​^)

RewriteRule ^. * $ /Arenda-gruzovogo-avto.html? - nuovo indirizzo.

Quando alcuni parametri GET non sono specificati o hanno valori arbitrari, utilizzare la seguente sintassi:

RewriteCond% (QUERY_STRING) ^ IBLOCK_ID = 1 & SECTION_ID = (. *) $
RewriteRule ^ dir / index \ .php $ / nuovo / sef /?

Senza salvare i parametri GET

Per reindirizzare l'indirizzo site.ru/index.php al mirror principale di site.ru:

RewriteEngine attivato
RewriteCond% (LA_RICHIESTA) ^ (3.9) \ / indice \ .php \ HTTP /
RewriteRule ^ indice \ .php $ http://www.site.ru/

RewriteCond% (REQUEST_URI) /index.php
RewriteCond% (QUERY_STRING) ^ \ z
RewriteRule ^ (. *) $ Http://site.ru/?

Su URL con lettere minuscole

Gli sviluppatori esperti sanno che i motori di ricerca distinguono tra diverse lettere maiuscole, quindi nella fase iniziale cercano di aggiungere tutti gli indirizzi in minuscolo. Se hai perso questo punto, applica uno speciale algoritmo di reindirizzamento.

Vuoi sapere come reindirizzare da qualsiasi indirizzo all'URL in minuscolo? Aggiungi il seguente codice a livello di php-script:

$ URI inferiore = strtolower ($ _ SERVER ['REQUEST_URI']);
if ($ _ SERVER ['REQUEST_URI']! = $ URI inferiore)
{
header ("HTTP / 1.1 301 spostato definitivamente");
header ("Posizione: http: //". $ _SERVER ['HTTP_HOST']. $ lowerURI);
Uscita ();
}

Dalla pagina interna alla pagina iniziale

RewriteEngine attivato
RewriteCond% (HTTP_HOST) ^ www \ .site \ .ru $
RewriteRule ^ vnutrenyaya-stranica / $ http://www.site.ru/

Reindirizzamento della directory

In caso di modifica della struttura della directory visualizzata nell'URL:
RewriteRule ^ (. *) / Vecchio catalogo /(.*)$ $ 1 / Nuovo catalogo / $ 2
Se l'indirizzo del catalogo obsoleto va subito dopo il nome del sito (www.site.com/old-catalog/), utilizzare la sintassi:
RewriteRule vecchio catalogo /(.*) / vecchio catalogo / $ 1

Nota! Queste opzioni sono generalmente adatte per risolvere problemi globali, ma a causa delle peculiarità dei singoli motori potrebbe essere necessario migliorarle. RewriteCond% (HTTP_USER_AGENT)! (Accoona | ia_archiver | antabot | ask \ jeeves | baidu | dcpbot | eltaindexer | feedfetcher | gamespy | gigabot | googlebot | gsa-crawler | grub-client | gulper | slurnbot | mihalism world | orally | pagebull | scooter | w3c_validator | puzzle | webalta | yahoofeedseeker | yahoo! \ slurp | mmcrawler | yandexbot | yandeximages | yandexvideo | yandexmedia | yandexblogs | yandexaddurl | yandexfavicons | yandexdirect | yandexmetalogizer)
RewriteRule (. *) Http://no-search.site.ru/

Sintassi per le espressioni regolari in .htaccess

. un punto sostituisce un carattere arbitrario;
denota un elenco di caratteri che corrispondono alle lettere a, b o c;
[^ abc] un elenco di caratteri al di fuori dell'intervallo specificato (tranne a, b, c);
* indica che il carattere precedente può essere ripetuto 0 o più volte;
* il comando troverà caratteri consecutivi dal set specificato;
[^ abc] * porta all'effetto opposto;
.* sostituisce qualsiasi set di caratteri;
«.*» cerca tutte le sottostringhe tra virgolette;
^ inizio riga (se utilizzato all'inizio di un'espressione);
$ indica la fine della linea;
\ w numero, lettera o trattino basso _;
\ D sostituisce qualsiasi cifra;
\ D può sostituire qualsiasi carattere diverso da una cifra;
sostituire qualsiasi cifra;
per tutte le lettere dalla a alla z in minuscolo;
per ogni lettera dalla A alla Z in maiuscolo;
qualsiasi lettera dalla a alla Z in tutti i registri;
allo stesso modo.

Come controllare i reindirizzamenti 301?

Esistono due tipi di validazione corretta delle modifiche apportate:

  • al pezzo manualmente tramite i servizi bertal.ru o lo strumento Header Checker;
  • un pacchetto con il programma Screaming Frog Seo Spider in grado di eseguire la scansione dell'intero sito.

Attenzione! I motori di ricerca impiegano tempo per trovare il codice 301 e assegnare il peso alla nuova pagina. La durata della procedura dipende dalla frequenza con cui i robot visitano questo indirizzo (possono essere necessarie fino a 2-3 settimane).

Errori durante l'utilizzo dei reindirizzamenti

  • utilizzare reindirizzamenti interni senza modificare l'URL nei collegamenti;
  • implementazione di un reindirizzamento multi-step;
  • impostare l'inoltro di chiamata temporaneo anziché permanente;
  • scelta errata del tipo di reindirizzamento;
  • reindirizzamento del file robots.txt;
  • fraintendere la differenza tra rel = canonico e codice 301;
  • reindirizzare a contenuti irrilevanti;
  • un reindirizzamento che non porta alla 200a pagina.

Aggiungi questo manuale ai preferiti per un facile accesso. Ti tornerà sicuramente utile!

Tipi di reindirizzamenti

Esistono diversi tipi di reindirizzamenti, dai una rapida occhiata a ciascuno per determinare quale funziona meglio per te.

Reindirizzamento tramite htaccess- il modo più popolare e abbastanza semplice. Per farlo, devi creare un file chiamato .htaccess nella cartella del sito (nota che il nome del file inizia con un punto, questo non è un errore di battitura). Se utilizzi CMS WordPress o Joomla, molto probabilmente hai già questo file, in questo caso dovrai solo modificarlo.
Leggi di seguito per scoprire esattamente quali istruzioni devi scriverci per creare un reindirizzamento.

Reindirizzamento con PHP- adatto se capisci PHP e conosci la struttura del tuo sito. Questa opzione ti si addice se il tuo sito non è scritto in CMS. Altrimenti, è meglio usare un reindirizzamento tramite htaccess.

Reindirizzamento HTML- se hai un semplice sito HTML e devi reindirizzare una pagina, questa è l'opzione più semplice. Sarà laborioso reindirizzare l'intero sito in questo modo, soprattutto se hai più di 10 pagine sul tuo sito.

Reindirizzamento con JavaScript- questo metodo è adatto anche se hai un sito semplice, o se devi fare un reindirizzamento per una o due pagine, o per l'intero sito nel suo insieme.

Reindirizzamento con file .htaccess

Le istruzioni che vedrai di seguito devono essere scritte nel file .htaccess proprio all'inizio.

  1. Reindirizza l'intero sito (tutte le pagine) a un altro sito

    Reindirizzamento / http://new-site.ru/

    In questo esempio, il reindirizzamento avverrà al sito new-site.ru

  2. Reindirizza una pagina all'altra

    Reindirizza /pagina-1.html /pagina-2.html

    In questo esempio, il reindirizzamento sarà da page-1.html a page-2.html. Entrambe le pagine devono trovarsi sullo stesso dominio.
    Questa opzione è adatta per sostituire le vecchie pagine del sito con quelle nuove.

  3. Reindirizzamento 310 da www a non www

    RewriteEngine attivato
    RewriteCond% (HTTP_HOST) ^ www.example \ .ru
    RewriteRule ^ (. *) $ Http://example.ru/$1

    In questo esempio, i visitatori verranno reindirizzati da http://www.example.ru a http://example.ru.

  4. Reindirizzamento 310 da una pagina all'altra

    Reindirizzamento 301 /blog/page-1.html http://example.com/page-2.htm

    In questo esempio, i visitatori verranno reindirizzati dalla pagina blog / pagina-1.html sul esempio.com/pagina-2.htm.

  5. reindirizzamento errore 404

    ErrorDocumento 404 /index.html

    Aggiungi questa riga nel file .htaccess, quindi tutti i visitatori che riscontrano un errore 404 verranno reindirizzati a indice.html.

  6. Reindirizzamento da HTTP a HTTPS

    RewriteEngine attivato
    RewriteCond% (HTTPS) disattivato
    RewriteRule (. *) HTTP: //% (HTTP_HOST)% (REQUEST_URI)

    Aggiungi questa riga nel file .htaccess, quindi tutti i visitatori che sono entrati nel sito tramite il protocollo HTTP verranno reindirizzati al protocollo HTTPS sicuro.

    Se stai reindirizzando WordPress, quindi notare che il file contiene già la linea RewriteEngine On. Pertanto, immediatamente sotto di esso, è necessario aggiungere le seguenti righe

    RiscriviCond% (SERVER_PORT) 80
    RewriteRule ^ (. *) $ Https://www.domain.com/$1

Reindirizzamento PHP

In PHP, un reindirizzamento avviene in questo modo: il server invia le intestazioni delle intestazioni al browser del visitatore, che va automaticamente all'indirizzo desiderato.
Vale la pena notare un punto importante, le intestazioni possono essere inviate solo fino a quando non vengono visualizzate altre informazioni. Cioè, devono essere inviati prima dell'output di qualsiasi altra informazione tramite eco e prima di inviare i cookie.

  1. Reindirizzamento a un altro sito

    In questo esempio, il reindirizzamento sarà al sito http://example.com

  2. Qui il reindirizzamento avverrà a http://example.com/page.html

  3. Reindirizzare un certo pagine a una pagina su un altro sito

    if ($ _ SERVER ["REQUEST_URI"] === "blog / post-1.html") (
    header ("Posizione: http://example.com/page.html");
    }
    ?>

    Qui, se un visitatore del sito accede alla pagina blog/post-1.html, verrà reindirizzato a http://example.com/page.html

Reindirizzamento HTML

Per effettuare un reindirizzamento tramite HTML, è necessario aggiungere uno speciale meta tag a ciascuna pagina in cui è pianificato. Il meta tag è scritto all'interno del tag .
Su siti di grandi dimensioni, questo metodo non è conveniente e si consiglia di utilizzare un reindirizzamento tramite.

  1. Reindirizzamento a un altro sito

    In questo esempio, il reindirizzamento avverrà al sito https: // con un ritardo di 5 secondi. Se imposti il ​​valore del ritardo invece di 5 su 0, il visitatore verrà reindirizzato immediatamente a un altro sito.

  2. Reindirizzamento a una pagina di un altro sito
Potresti esserti imbattuto in una situazione in cui hai fatto clic su un URL per raggiungere la pagina X, ma internamente sei stato indirizzato a un'altra pagina Y. Ciò è dovuto a reindirizzamenti della pagina... Questo concetto è diverso dall'aggiornamento della pagina in JavaScript.

Ci possono essere vari motivi per cui desideri reindirizzare l'utente dalla pagina originale. Elenchiamo di seguito diversi motivi:

  • Non ti è piaciuto il tuo nome di dominio e stai passando a uno nuovo. In questo caso, puoi indirizzare tutti i tuoi visitatori al nuovo sito. Qui è dove puoi mantenere il tuo vecchio dominio, ma inserire una pagina di reindirizzamento in modo che tutti i visitatori del tuo vecchio dominio possano andare al nuovo dominio.
  • Le tue pagine vengono create in modo diverso, in base alle versioni del browser o ai loro nomi, o possono essere specifiche di paesi diversi, invece di utilizzare la tua pagina di reindirizzamento lato server, puoi utilizzare una pagina di reindirizzamento lato client per indirizzare gli utenti alla pagina appropriata.
  • I motori di ricerca potrebbero aver già indicizzato le pagine. Ma quando passi a un altro dominio, non vorresti perdere visitatori che arrivano attraverso i motori di ricerca. In questo modo puoi utilizzare la pagina di reindirizzamento lato client. Ma tieni presente che questo non dovrebbe essere fatto per ingannare il motore di ricerca, può portare al ban del tuo sito.

Come funziona il reindirizzamento della pagina?

Un esempio di implementazione del reindirizzamento delle pagine è il seguente:

Esempio 1

È abbastanza facile eseguire reindirizzamenti di pagine utilizzando JavaScript sul lato client. Per reindirizzare i visitatori del sito a una nuova pagina, devi solo aggiungere una riga nella sezione principale come segue.

Fai clic sul pulsante successivo, verrai reindirizzato alla pagina principale.

Esempio 2

Puoi mostrare un messaggio pertinente ai visitatori del tuo sito e quindi reindirizzarli a una nuova pagina. Ci vorrà un po' di tempo per caricare la nuova pagina. L'esempio seguente mostra come implementare lo stesso. Qui SetTimeout() è una funzione JavaScript incorporata che può essere utilizzata per eseguire un'altra funzione dopo un intervallo di tempo specificato.

Conclusione

Verrai reindirizzato alla home page in 10 secondi!

Esempio 3

L'esempio seguente mostra come reindirizzare i visitatori del tuo sito web a una pagina diversa a seconda dei loro browser.

Esempi di reindirizzamenti o reindirizzamenti a un'altra pagina.

Reindirizzamento HTML

// Aggiorna la pagina dopo 5 secondi: // Reindirizzamento a https://www.google.com dopo 5 secondi: // Reindirizzamento immediato a https://www.google.com:

Reindirizzamento JavaScript

Il metodo replace() ti consente di sostituire una pagina con un'altra in modo tale che questa sostituzione non si rifletta nella cronologia HTML del browser.

Location.replace ("https://www.google.com"); document.location.replace ("https://www.google.com");

Il metodo reload() simula completamente il comportamento del browser quando si fa clic sul pulsante di ricarica nella barra degli strumenti. Se si chiama il metodo senza un argomento o lo si specifica uguale a true, il browser verificherà l'ora dell'ultima modifica del documento e lo scaricherà dalla cache (se il documento non è stato modificato) o dal server. Questo comportamento corrisponde al clic sul pulsante di ricarica. Se specifichi false come argomento, il browser ricaricherà il documento corrente dal server. Questo comportamento corrisponde alla pressione simultanea di ricarica e del tasto Maiusc (ricarica + Maiusc).

Window.location.reload ("https://www.google.com");

Anche i seguenti esempi reindirizzeranno a Google:

Posizione = "https://www.google.com"; document.location.href = "https://www.google.com";

Utilizzando la funzione setTimeout, è possibile implementare un ritardo di reindirizzamento prima di eseguire un reindirizzamento (nell'esempio - 5 secondi):

SetTimeout ("posizione =" https://www.google.com ";", 5000);

Un semplice esempio di reindirizzamento del timer:

attendere prego 10 sec o segui questo link: https://www.google.com

Reindirizzamento PHP

Php ha una funzione header() che permette non solo di sostituire le intestazioni standard, ma anche di aggiungerne di nuove.

Sintassi:

// la stringa è una stringa di intestazione completamente formata che deve essere aggiunta (senza la nuova riga finale "\ n") // replace specifica se sostituire le intestazioni con lo stesso nome (true) o aggiungere alla fine (false) // http_response_code specifica il codice di risposta http (300, 301, 302, ecc.) void header (string string [, bool replace = true [, int http_response_code]]);

Esempi di utilizzo:

Intestazione ("Aggiorna: 0; url = / error404.html"); // reindirizza immediatamente (senza indugio) all'intestazione della pagina di errore ("Aggiorna: 5; url = https: //www.google.com/"); // reindirizza alla pagina principale di Rambler 5 secondi dopo il caricamento della pagina. intestazione ("Posizione: /", true, 307); // reindirizza alla pagina principale del sito utilizzando un reindirizzamento 307. header ("Posizione: /article/page.htm", true, 303); // usa un reindirizzamento 303 per reindirizzare alla pagina interna del sito. intestazione ("Posizione: http://google.ru/search?q=redirect"); // usa un reindirizzamento 302 per reindirizzare a una ricerca su Google per la parola reindirizzamento (quando si utilizza la posizione senza specificare un codice di reindirizzamento, l'impostazione predefinita è 302). intestazione ("Posizione: http://yandex.ru/yandsearch?text=redirect", true, 301); // reindirizza utilizzando un reindirizzamento 301 a una ricerca Yandex per la parola reindirizzamento.

Reindirizzamento HTML in PHP:

";

La seconda opzione, che ha un significato simile, ma può essere utile se l'installazione del codice e il reindirizzamento devono essere eseguiti in luoghi diversi:

Header ("HTTP / 1.1 301 spostato in modo permanente"); intestazione ("Posizione: http://site.com/");

La prima riga specifica il codice http e la seconda, infatti, specifica l'indirizzo. Nella maggior parte dei casi, non ci saranno problemi. Tuttavia, se si utilizza la modalità FastCGI, al posto di "HTTP / 1.1 301 spostato in modo permanente" potrebbe essere necessario scrivere "Stato: 301 spostato in modo permanente".

Reindirizzamento in .htaccess (RewriteEngine)

Sintassi:

Reindirizzamento URL percorso URL da reindirizzare

Lo stato del parametro opzionale è di tre cifre: il codice di reindirizzamento (ad esempio, 301). Se non specificato, il valore predefinito è 302.

URL-percorso - la parte dell'indirizzo richiesta dall'utente (o dal motore di ricerca), che deve necessariamente iniziare con una barra (/)

URL-to-redirect - indirizzo completo del sito (ed eventualmente parte del percorso) a cui verrà effettuato il reindirizzamento. Dovrebbe essere nella forma http://site.ru/, ovvero il protocollo (http: //) e la barra di chiusura (/) devono essere presenti.

Se il percorso dell'URL non termina con una barra, il reindirizzamento verrà attivato solo se l'URL richiesto dall'utente corrisponde esattamente al percorso dell'URL.

Se il percorso dell'URL termina con una barra, il reindirizzamento funzionerà non solo per l'indirizzo specificato, ma anche per tutto ciò che inizia con quello specificato. E la parte dell'indirizzo che segue l'ultima barra specificata nel percorso dell'URL verrà aggiunta all'URL di reindirizzamento.

L'azione della direttiva RedirectMatch è simile a Redirect, ma le espressioni regolari possono essere utilizzate nei parametri URL-regexp e URL-to-redirect.

// deve essere attivo affinché RewriteRule funzioni RewriteEngine su RewriteRule URL-regexp URL-to-redirect]

La direttiva RewriteRule ha una gamma più ampia di usi. Che, tra le altre possibilità, ne consente l'uso per i reindirizzamenti - con l'indicazione dei flag L (esegui immediatamente) e R (reindirizza) alla fine della riga tra parentesi quadre.

Esempi di utilizzo:

Reindirizzamento / http://yandex.ru/yandsearch?text= # Un reindirizzamento 302 (per impostazione predefinita) a una ricerca Yandex per i caratteri inseriti nella barra degli indirizzi dopo che verrà eseguito il nome del tuo sito. # Cioè, se un visitatore inserisce http: //tuo_sito.ru/page, il browser lo reindirizzerà a http://yandex.ru/yandsearch?text=page Redirect 301 /hello.html http://google.ru /cerca?q = ciao # Se vai alla pagina http: //tuo_sito.ru/ciao.html, verranno eseguiti 301 reindirizzamenti per cercare la frase "ciao" in Google. RedirectMatch (. *) \.Jpg $ http: //hosting_for_images $1.jpg # "Temporaneamente" (302 reindirizzamenti sono attivi per impostazione predefinita) reindirizza tutte le richieste di immagini jpeg a qualche hosting gratuito # o lo stesso, ma usando RewriteRule : RewriteEngine on RewriteRule (. *) \.Jpg $ http: //hosting_for_pictures $1.jpg

Reindirizzamento in Yii2

$ questo-> registerMetaTag (["http-equiv" => "Aggiorna", "contenuto" => "5; http://google.ru/"]);