Cách thích hợp để gửi subdomain.herokuapp.com đến miền đỉnh của ứng dụng là gì? Điều này là để tránh nhiều tên miền với cùng một nội dung.Force Rails Heroku App từ subdomain.herokuapp.com đến miền apex?
Trả lời
https://github.com/tylerhunt/rack-canonical-host có vẻ là sự lựa chọn hoàn hảo cho việc này. Để nó ở đây cho bất kỳ ai khác có cùng câu hỏi.
Trích dẫn từ https://devcenter.heroku.com/articles/custom-domains
Các myapp.herokuapp.com miền sẽ luôn duy trì hoạt động, ngay cả khi bạn đã thiết lập một miền tùy chỉnh. Nếu bạn muốn người dùng chỉ sử dụng tên miền tùy chỉnh , bạn nên gửi trạng thái HTTP 301 Đã di chuyển Vĩnh viễn để yêu cầu trình duyệt web sử dụng miền tùy chỉnh. Yêu cầu HTTP máy chủ lưu trữ trường tiêu đề sẽ hiển thị tên miền mà người dùng đang cố gắng truy cập; gửi chuyển hướng nếu trường đó là myapp.herokuapp.com.
Bạn có thể chuyển hướng yêu cầu tới "subdomain.herokuapp.com" bằng bộ lọc trước trong ApplicationController hoặc sử dụng hạn chế trong định tuyến đường ray.
Để có câu trả lời toàn diện với một chút khả năng mở rộng, tính tổng thể, nó trông giống như thế này;
class ApplicationController < ActionController::Base
before_filter :redirect_to_example if Rails.env.production?
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
private
# Redirect to the appropriate domain i.e. example.com
def redirect_to_example
domain_to_redirect_to = 'example.com'
domain_exceptions = ['example.com', 'www.example.com']
should_redirect = !(domain_exceptions.include? request.host)
new_url = "#{request.protocol}#{domain_to_redirect_to}#{request.fullpath}"
redirect_to new_url, status: :moved_permanently if should_redirect
end
end
Điều này sẽ chuyển hướng mọi thứ đến domain_to_redirect_to
ngoại trừ những gì trong domain_exceptions
.
- 1. Làm cách nào để trỏ đến miền tùy chỉnh miễn phí trên Heroku?
- 2. Rails Stylesheets trên Heroku
- 3. Miền thư đến tùy chỉnh với Google App Engine
- 4. Cách phân phát miền tùy chỉnh trỏ đến tên miền phụ trong Saas App
- 5. Proxy một tệp từ S3 với Heroku và Rails
- 6. Ứng dụng Heroku tự động được chuyển hướng đến HTTPS
- 7. Heroku on Rails - Không hợp lệ DATABASE_URL
- 8. Heroku rails Procfile
- 9. RMagick + Rails + Heroku?
- 10. Ruby on rails app hoạt động cục bộ nhưng không hoạt động trên heroku
- 11. Heroku App Crash H10 - bash: bin/rails: Không có tập tin hoặc thư mục như vậy
- 12. Faye on Heroku: Các vấn đề liên quan đến tên miền
- 13. Chuyển hướng từ miền cũ sang tên miền mới (SEO thân thiện)
- 14. Không thể yêu cầu Mandrill gửi email từ Rails App
- 15. FTPS (TLS/SSL) từ Ruby on Rails App
- 16. Force SSL sử dụng ssl_requirement trong ứng dụng Rails 2
- 17. Heroku /-Ruby-on Rails lỗi: hình ảnh không precompiling
- 18. Rails Devise: Đăng nhập từ một tên miền khác
- 19. Rails 3.2.1 tài sản Heroku tiền biên dịch lỗi
- 20. Gọi lại từ Delphi dll đến C# app
- 21. Làm thế nào để đẩy Procfile đến Heroku?
- 22. Phương thức không xác định 'arity' dẫn đến lỗi 4 lỗi triển khai Heroku (H10)
- 23. Dalli vs Redis-Store cho Rails App
- 24. Capistrano + NGINX Hành khách Restart Rails App
- 25. APEX 4.0: cách sao chép trang từ một ứng dụng này sang ứng dụng khác trong APEX
- 26. Lỗi nhà cung cấp không xác định khi triển khai ứng dụng Rails/AngularJS đến Heroku
- 27. CSV trên Heroku Cedar
- 28. Lịch sử Html5 Api - pushState từ miền đến tên miền phụ
- 29. Rails rspec đặt tên miền phụ
- 30. Bao gồm Google Font trong Rails App
hoạt động cho đường dẫn, nhưng không cho trang chủ – linojon
@ linojon Dường như nó hoạt động với tôi trên đường dẫn gốc, nhưng tôi đã thay đổi new_url thành '{# request.protocol} # {domain_to_redirect_to} # {request. fullpath nếu request.fullpath! = '/'} "' để tránh dấu gạch chéo. – eirikir
Cũng giống như thêm một ... Tôi không biết về 'loại trừ? 'Khi tôi viết điều này ... bạn có thể có,' should_redirect = domain_exceptions.exclude? request.host' có vẻ dễ đọc hơn. –