Saya mendapat situs kecil yang dilayani oleh Apache (saya tidak bisa menempatkan Nginx di depan atau mengubah Apache ke apa pun), dan itu diatur untuk melayani situs yang sama baik di http dan https (tidak ada pengalihan http-> https ada begitu jauh, sehingga versi http dan https disajikan secara paralel).
Yang saya butuhkan adalah mengatur .htaccess
URI yang sama melalui http dan via https untuk menyajikan file teks yang berbeda?
Seperti http://example.com/proto.txt
mengatakan "Situs lebih dari http" sementara https://example.com/proto.txt
akan mengatakan "Situs disajikan lebih dari https".
apache-2.4
https
http
htpasswd
Kevin M.
sumber
sumber
RewriteRule
di Anda.htaccess
dengan kondisi di atasnya dilayani lebih https.<VirtualHost>
s berbeda . Jadi, Anda hanya perlu mengkonfigurasi robots.txt yang berbeda di salah satunya. Sekitar jadi:RewriteRule ^/robots.txt$ /path/to/alternative/robots.txt [L]
Jawaban:
Gunakan Alias
Buat dua file, robots.txt dan robots_http.txt dan tambahkan ini ke http VirtualHost Anda:
sumber
Jika Anda tidak dapat atau tidak akan mengubah konfigurasi Apache "utama" tetapi perlu melakukannya dalam
.htaccess
file, Anda dapat menggunakanRewriteRule
dengan denganRewriteCond
yang memeriksa HTTPS.Sesuatu di sepanjang garis:
mungkin harus bekerja (saya tidak mengujinya).
Perhatikan bahwa ini didasarkan pada Apache yang melakukan terminasi HTTPS sendiri. Jika penghentian HTTPS dilakukan pada proxy terbalik sebelum itu, maka kondisinya kemungkinan akan berbeda (dan akan tergantung pada konfigurasi proxy reverse dan Apache).
sumber