Saya telah mengatur pengalihan di host virtual Apache saya yang melayani beberapa subdomain - sebut mereka a.example.com dan b.example.com - melayani aplikasi ruby on rails.
Pada file konfigurasi virtualhost saya, saya memiliki aturan ini:
rewriteEngine on
rewriteRule proxy/(.+)$ http://news.example.com/$1 [P]
Idenya adalah bahwa saya bisa melakukan http://a.example.com/proxy/news/a
dan mendapatkan isinya http://news.example.com/news/a
, tetapi dalam subdomain yang sama, jadi ajax tidak berpikir permintaan ajax saya adalah lintas-domain - info lebih lanjut tentang pertanyaan SO ini .
Masalahnya adalah bahwa sementara itu berfungsi dengan baik di lingkungan pementasan saya, itu tidak dalam produksi!
Kedua server adalah server Ubuntu 10,04. Apache berasal dari repo ubuntu standar, menggunakan apt-get install
.
Saya telah membuat perbedaan dari seluruh / etc / apache2 / dir dan satu-satunya perbedaan adalah nama server.
Jika saya mengubah opsi terakhir ke [L], saya mendapatkan arahan ulang, jadi ini membuat saya berpikir bahwa mod_rewrite berfungsi. Itu hanya tidak berbicara dengan mod_proxy.
Dengan melihat log ( /var/log/apache2
dan log rel), sepertinya aturan penulisan ulang dalam produksi hanya diabaikan - log sama persis seolah-olah tidak ada.
Bagaimana saya bisa men-debug ini? Bisakah saya memaksa Apache untuk memberi saya informasi lebih lanjut tentang mengapa aturan khusus ini tidak ditegakkan ketika saya mengakses /proxy
?