Saya mencoba untuk mengatur robots.txt
semua host virtual di bawah server nginx http. Saya bisa melakukannya di Apache dengan meletakkan yang berikut ini di utama httpd.conf
:
<Location "/robots.txt">
SetHandler None
</Location>
Alias /robots.txt /var/www/html/robots.txt
Saya mencoba melakukan sesuatu yang mirip dengan nginx dengan menambahkan baris yang diberikan di bawah ini (a) di dalam nginx.conf dan (b) dengan menyertakan conf.d / robots.conf
location ^~ /robots.txt {
alias /var/www/html/robots.txt;
}
Saya telah mencoba dengan '=' dan bahkan memasukkannya ke dalam salah satu virtual host untuk mengujinya. Tampaknya tidak ada yang berhasil.
Apa yang kulewatkan di sini? Apakah ada cara lain untuk mencapai ini?
nginx
robots.txt
anup
sumber
sumber
Jawaban:
lokasi tidak dapat digunakan di dalam
http
blok. nginx tidak memiliki alias global (yaitu alias yang dapat didefinisikan untuk semua vhosts). Simpan definisi global Anda dalam folder dan sertakan itu.sumber
Anda dapat mengatur konten file robots.txt secara langsung di konfigurasi nginx:
Dimungkinkan juga untuk menambahkan Tipe-Konten yang benar:
sumber
location = /robots.txt
(Perhatikan tanda sama dengan) jika tidaklocation ~* \.(txt|log)$
pertandingan lain di bawahnya menimpanya.conf.d/robots.conf
? Seperti "arahan" lokasi tidak diizinkan di sini , yang masuk akal, tetapi tidak untuk server tertentu. Saya tidak yakin tentang jawaban @ user79644 untuk ini. Apakah tak terhindarkan untuk menambahkan ini ke setiap situs?Apakah ada aturan lain yang didefinisikan? Mungkin common.conf atau file conf lain di dalamnya termasuk over-riding konfigurasi Anda. Salah satu dari berikut ini pasti akan berhasil.
sumber
/robots.txt
file ke alias. Saya tidak mendapatkanroot
opsi untuk bekerja.Saya memiliki masalah yang sama dengan tantangan acme, tetapi prinsip yang sama berlaku untuk kasus Anda juga.
Apa yang saya lakukan untuk mengatasi masalah ini adalah memindahkan semua situs saya ke port non-standar, saya memilih
8081
, dan membuat server virtual mendengarkan pada port 80. Ini mem-proksi semua permintaan127.0.0.1:8081
, kecuali yang ke .kenal. Ini bertindak hampir sebagai alias global, dengan satu lompatan ekstra, tetapi itu seharusnya tidak menyebabkan penurunan kinerja yang signifikan karena sifat async dari nginx.sumber