разрешить доступ к одной странице на поддомене, и при попытке доступа к другим страницам перенаправить на основной домен - PullRequest
0 голосов
/ 18 декабря 2018

разрешить доступ к одной странице (campaigns/test) на поддомене (aap.example.com), а при попытке доступа к другим страницам перенаправить на основной домен (example.com)

app.example.com - это моя подпрограмма-домен моего основного домена example.com, поэтому одно и то же приложение rails работает на домене и поддомене.

Я пробовал некоторые решения, такие как добавление ограничений в файл маршрутов и файл nginx, но не получил то, что янеобходимость.

routes.rb

constraints(Subdomain) do match '/campaigns/:slug' => 'campaigns#show', via: [:get] match "/cam_enquiry" => "campaigns#cam_enquiry", via: [:post] end

и subdomain.rb модуль

class Subdomain def self.matches?(request) case request.subdomain when 'app', '', nil false else true end end end

Дайте мне знать, если вынужны подробности.

1 Ответ

0 голосов
/ 18 декабря 2018

Определите все ваши маршруты и после него определите ограничение для app субдомена.Вам необходимо сопоставить маршрут test и использовать перенаправление для всех других маршрутов поддоменов.Укажите только пустой поддомен в параметрах перенаправления, в этом случае он получит всю остальную информацию из запроса и изменит только поддомен на основной домен

get 'campaigns/test', to: redirect(subdomain: 'app'), constraints: { subdomain: '' }
get '/campaigns/:slug', to: 'campaigns#show'
post '/cam_enquiry', to: 'campaigns#cam_enquiry'

constraints subdomain: 'app' do
  get 'campaigns/test', to: 'contoroller#action'
  get '/*any', to: redirect(subdomain: '')
end
...