Come servire diversi robots.txt per http e https sullo stesso sito?


11

Ho un piccolo sito servito da Apache (non riesco a mettere Nginx in primo piano né cambiare Apache in nulla), ed è impostato per servire lo stesso sito sia su http che su https (nessun reindirizzamento http-> https è così lontano, quindi entrambe le versioni http e https sono servite in parallelo).

Ciò di cui ho bisogno è configurare .htaccesslo stesso URI tramite http e via https per servire file di testo diverso?

Come http://example.com/proto.txtdice "Il sito è su http" mentre https://example.com/proto.txtdirebbe "Il sito è servito su https".


Non hai abbastanza tempo per controllare il modo esatto di scrivere questo (e quindi solo un commento, non una risposta), ma un'altra opzione se non vuoi o non puoi cambiare la configurazione principale di Apache, è usare a RewriteRulein your .htaccesscon una condizione per essere servito su https.
Jcaron,

@dcaron, questo è esattamente ciò di cui ho bisogno, non riesco proprio a capire come farlo esattamente, e ho bisogno di un consiglio o (meglio) frammento di codice per farlo :)
Kevin M

I tuoi siti http e https sono in diversi <VirtualHost>s. Quindi devi semplicemente configurare un robots.txt diverso in uno di essi. Intorno così:RewriteRule ^/robots.txt$ /path/to/alternative/robots.txt [L]
Peter - Ripristina Monica il

Risposte:


19

Usa un alias

Crea due file, robots.txt e robots_http.txt e aggiungilo a http VirtualHost:

Alias "/robots.txt" "/path/to/documentroot/robots_http.txt"

Non è possibile modificare le impostazioni del vhost, è possibile modificare solo .htaccess, questo è il trucco.
Kevin M,

2

Se non puoi o non vuoi modificare la configurazione "principale" di Apache ma devi farlo in un .htaccessfile, puoi usare a RewriteRulecon un RewriteCondche controlla HTTPS.

Qualcosa sulla falsariga di:

RewriteEngine On

RewriteCond %{HTTPS} "on"
RewriteRule robots.txt robots_https.txt [L]

probabilmente dovrebbe funzionare (non l'ho provato).

Si noti che questo si basa sul fatto che Apache esegue la stessa terminazione HTTPS. Se la terminazione HTTPS viene eseguita su un proxy inverso prima di esso, la condizione sarà probabilmente diversa (e dipenderà dalla configurazione del proxy inverso e di Apache).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.