Come fare un redirect 301 direttamente ad un punto di ancoraggio
Tabella dei contenuti
Cosa succede quando cerchi di fare una redirezione 301 ad una pagina e puntare direttamente ad un’ancora
Avete mai provato a fare un redirect e cercare di far andare direttamente la navigazione ad un’ancora inserita nel testo?
Cosa succede di solito?
Te lo dico io, succede che il carattere # che serve ad indicare l’ancora viene riscritto come se fosse un carattere da sottoporre a URL encoding.
URL encoding
La codifica dell’url è un modo per convertire i caratteri di un indirizzo in un formato che ne permette la trasmissione su internet.
Gli URL possono essere inviati su Internet solo utilizzando il set di caratteri ASCII. Molto spesso però capita che l’URL possa contenere caratteri speciali (lettere accentate, simboli, ecc..), in questo caso l’URL deve essere convertito in un formato ASCII valido.
La codifica URL sostituisce i caratteri ASCII non sicuri con un “%” seguito da due cifre esadecimali.
Gli URL non possono contenere spazi. La codifica URL normalmente sostituisce uno spazio con un segno più (+) o con %20.
Il carattere #
Il carattere cancelletto (#) è proprio uno di quelli che viene tradotto in modo che sia comprensibile dagli indirizzi, anche se normalmente è considerato un carattere importante con una funzione speciale.
Però se si vuole evitare che # venga encodato basta inserire il flag NE nella regola htaccess in questa maniera:
RedirectRule ^myOldPage.html$ /index.php#info [R,NE]
Infatti il flag NE significa No Encoding ed evita che il carattere # (in realtà anche tutti gli altri caratteri speciali contenuti nella regola) venga encodato.
Se ti serve una mano con i redirect del tuo sito, usa questo modulo per contattarmi.
Lascia un Commento
Vuoi partecipare alla discussione?Sentitevi liberi di contribuire!