2012-04-07 16 views
15

मैं अपने लैंडिंग पृष्ठ पर एकाधिक प्रविष्टियों को एक यूआरएल पर रीडायरेक्ट करना चाहता हूं।रेल 301 रीडायरेक्शन

निम्नलिखित यूआरएल, http://mysite.com और http://www.mysite.com, 301 पुनर्निर्देशन का उपयोग कर http://www.mysite.com/ पर रीडायरेक्ट करेगा। रेल में यह कैसे किया जा सकता है?

+0

जो वेब सर्वर आप उपयोग कर रहे हैं? – alex

उत्तर

3

मैं इस्तेमाल किया यह post और गैर-www यूआरएल का उपयोग करके रीडायरेक्ट करने का निर्णय लिया।

17

मैं यह कोशिश नहीं की, लेकिन कुछ इस तरह काम करना चाहिए:

class ApplicationController < ActionController::Base 
    before_filter :correct_domain! 

    private 
    def correct_domain! 
    unless request.host == 'www.mysite.com' 
     redirect_to root_url, :status => 301 # or explicitly 'http://www.mysite.com/' 
    end 
    end 
end 

लेकिन मुझे यकीन है कि अगर स्लैश मेजबान विशेषता में मौजूद है नहीं कर रहा हूँ ...

+0

धन्यवाद वापीयर, लेकिन जब मैं इसे अपने ऐप नियंत्रक में जोड़ता हूं तो मुझे रीडायरेक्ट लूप त्रुटि मिल रही है। – Dru

+0

घर नियंत्रक में किया जाना चाहिए, मेरे लिए अच्छी तरह से काम किया। – creativetechnologist

+0

@Dru सिर्फ एक अनुमान है लेकिन हो सकता है कि आपका '' 'root_url''' आपके' '' request.host''' से मेल नहीं खाता (यानी www शामिल नहीं है)। –

10

रेल में 301 रीडायरेक्ट का उपयोग करना

class RedirectController < ApplicationController 
    def index 
    redirect_to :root, :status => :moved_permanently 
    end 
end 
संबंधित मुद्दे