Ich habe eine kleine Site, die von Apache bereitgestellt wird (ich kann weder Nginx in den Vordergrund stellen noch Apache in irgendetwas ändern), und sie ist so eingerichtet, dass sie dieselbe Site sowohl über http als auch über https bereitstellt (es gibt also keine Weiterleitungen von http-> https) Bisher werden also sowohl die http- als auch die https-Version parallel bereitgestellt.
Was ich brauche, ist, .htaccess
denselben URI über http und über https einzurichten , um verschiedene Textdateien bereitzustellen?
Wie http://example.com/proto.txt
sagt "Die Site ist über http", während https://example.com/proto.txt
sagen würde "Die Site wird über https bereitgestellt".
apache-2.4
https
http
htpasswd
Kevin M.
quelle
quelle
RewriteRule
in your.htaccess
mit der Bedingung, dass es über https bereitgestellt wird.<VirtualHost>
s. Sie müssen also einfach eine andere robots.txt in einer davon konfigurieren. Um so:RewriteRule ^/robots.txt$ /path/to/alternative/robots.txt [L]
Antworten:
Verwenden Sie einen Alias
Erstellen Sie zwei Dateien, robots.txt und robots_http.txt, und fügen Sie diese Ihrem http VirtualHost hinzu:
quelle
Wenn Sie die "Haupt" -Apache-Konfiguration nicht ändern können oder wollen, dies aber in einer
.htaccess
Datei tun müssen , können Sie eineRewriteRule
mit a verwendenRewriteCond
, die nach HTTPS sucht.Etwas in der Art von:
sollte wahrscheinlich funktionieren (ich habe es nicht getestet).
Beachten Sie, dass dies darauf basiert, dass Apache die HTTPS-Beendigung selbst ausführt. Wenn die HTTPS-Beendigung zuvor auf einem Reverse-Proxy erfolgt, ist die Bedingung wahrscheinlich anders (und hängt von der Konfiguration des Reverse-Proxys und von Apache ab).
quelle