diff --git a/app/controllers/pageflow/entries_controller.rb b/app/controllers/pageflow/entries_controller.rb index 570bc0ea4a..ba6080b41e 100644 --- a/app/controllers/pageflow/entries_controller.rb +++ b/app/controllers/pageflow/entries_controller.rb @@ -15,7 +15,9 @@ def index ) if entry - handle_public_entry_request(entry) + respond_to do |format| + format.html { handle_public_entry_request(entry) } + end elsif site.home_url.present? redirect_to(site.home_url, allow_other_host: true) else diff --git a/spec/requests/pageflow/entries_index_request_spec.rb b/spec/requests/pageflow/entries_index_request_spec.rb index 68948b8b4d..74d339f770 100644 --- a/spec/requests/pageflow/entries_index_request_spec.rb +++ b/spec/requests/pageflow/entries_index_request_spec.rb @@ -56,6 +56,22 @@ module Pageflow .to include('Root Story published rendered by entry type frontend app') end + it 'responds with not found for non-html format' do + site = create(:site, cname: 'pageflow.example.com') + create(:entry, + :published, + site:, + type_name: 'test', + title: 'Root Story', + permalink_attributes: {slug: '', allow_root_path: true}) + + get('/', + params: {}, + headers: {'HTTP_HOST' => 'pageflow.example.com', 'HTTP_ACCEPT' => 'text/plain'}) + + expect(response.status).to eq(404) + end + it 'responds with not found if no site matches cname' do get('/', params: {}, headers: {'HTTP_HOST' => 'unknown.example.com'})