Redirect ke Domain lain kecuali jika urlnya berisi pengenal

Maaf jika Judul Pertanyaannya agak melenceng, tidak dapat memikirkan sesuatu yang lebih deskriptif.

Jadi saya punya 2 Domain: aaa.com dan bbb.com.

Saya ingin domain kedua saya bbb.com selalu dialihkan ke aaa.com KECUALI JIKA memiliki jalur tertentu: bbb.com/ct/:id

Kedua domain saat ini berada di Aplikasi Heroku yang sama.

Jadi di Application Controller saya kira, atau Rute I, harus memindai URL permintaan dan jika berisi /ct/:id biarkan melanjutkan ke tindakan pengontrol, jika tidak dialihkan ke aaa.com.

Atau bisakah saya mengatur DNS agar hanya mengarahkan ulang jika ct/:id tidak ada di url?

Pada dasarnya saya ingin memastikan bahwa Pengguna tidak dapat menavigasi Aplikasi dari bbb.com kecuali jika url spesifik bbb.com/ct/:id ada.

Saya menggunakan GoDaddy sebagai Pendaftar dan menyiapkan 2 Nama di Aplikasi Heroku saya.

Bagaimana cara mencapai perilaku ini?


person Mini John    schedule 24.12.2015    source sumber


Jawaban (2)


Saya lebih suka melakukan pengalihan di pengontrol sebenarnya dan bukan di file rute sehingga Anda dapat menulis spesifikasi pengontrol untuk itu.

# app/controllers/application_controller.rb

before_action :redirect_bbb_to_aaa

def redirect_bbb_to_aaa
  if request.host == "http://bbb.com"
    redirect_to some_aaa_path unless request.url == "http://bbb.com/ct/:id"
  end
end
person MilesStanfield    schedule 25.12.2015

Anda dapat membuat rak middleware untuk melakukan pengalihan. Salah satu contohnya ada di sini https://github.com/gbuesing/rack-host-redirect/blob/master/lib/rack/host_redirect.rb

OR

Gunakan batasan di rute.rb. Catatan: Saya belum mengujinya.

get "*path" => redirect("http://aaa.com"), constraint: lambda { |request| !request.url.match(/ct\/\d/) }
person archana    schedule 24.12.2015
comment
Beberapa penjelasan akan sangat membantu. Saya tidak pernah mendalami Middleware. - person Mini John; 25.12.2015
comment
Lihatlah kode di permata (tautan disediakan di atas). github.com/gbuesing/rack-host- pengalihan/blob/master/lib/rack/ - person archana; 25.12.2015
comment
Itu tautan yang sama. Seperti yang kubilang tadi, aku belum memahaminya :( - person Mini John; 25.12.2015