2015-06-09 3 views
6

मेरे पास एक बहु-किरायेदार रेल 4 ऐप है जो पोस्टग्रेएसक्यूएल स्कीमा के साथ सबडोमेन का उपयोग 'किरायेदार' के लिए करता है। मेरे पास हेरोोकू और क्लाउडफ्लेयर में सेट सबडोमेन वाइल्डकार्ड "*" है और साइट लोड है, लेकिन यह "सोच" रखता है कि www एक वैध सबडोमेन है। इसकी वजह से, सामान्य रूप से वैध लिंक (जो विकास में काम करते हैं) उत्पादन में काम नहीं करते हैं क्योंकि www.mysite.com/accounts/new आदि asdf.mysite.com/accounts/new जैसा ही है। क्या कोई तरीका है कि मैं अपने ऐप को सबडोमेन के रूप में www को अनदेखा कर सकता हूं? मैं अभी भी mysite.com को www.mysite.com पर फिर से निर्देशित करना चाहता हूं, लेकिन जब यह www है तो सबडोमेन को झूठी लगाना बहुत मुश्किल है?रेल + हेरोकू + क्लाउडफ्लारे - www को सबडोमेन के रूप में हटाएं

चीजों को थोड़ा और ठोस बनाने के लिए, मेरे application_controller में, मेरे पास कुछ कोड है जो निम्न कार्य करता है। टिप्पणियों पर ध्यान दें। विकास मोड में, redirect_to root_url (सबडोमेन: झूठा) काम करता है, लेकिन उत्पादन में, यह केवल असीमित रूप से फिर से निर्देशित करता है और लोड नहीं होगा। इसे लोड करने के लिए, मैं बस पृष्ठ प्रस्तुत करता हूं, लेकिन ऐसा करने से सबडोमेन को झूठी नहीं लगती है।

def load_schema 
    Apartment::Tenant.switch!('public') 
    return unless request.subdomain.present? 
    if current_account 
     Apartment::Tenant.switch!(current_account.subdomain) 
    else 
     redirect_to root_url(subdomain: false) # Works locally, but infinite re-direct in production 
     #render 'welcome/index' # - Renders the page in production, but nothing else works. 
    end 
    end 

असल में, सब कुछ विकास मोड में अपेक्षा के अनुरूप काम करता है, लेकिन उत्पादन में, वहाँ कुछ DNS मुद्दों है कि बाहर इस्त्री की जरूरत दिखाई देते हैं, लेकिन मुझे लगता है कि क्या करना है यह पता लगाने नहीं कर पा रहे। कोई विचार?

उत्तर

1

मुझे क्लाउडफ्लेयर में ए नाम रिकॉर्ड को हटाना पड़ा और इसे एक CNAME रिकॉर्ड से बदलना पड़ा। मैंने 2 अतिरिक्त CNAME रिकॉर्ड भी जोड़े: एक वाइल्डकार्ड और www के लिए एक।

0

मेरा सुझाव www.mysite.com को mysite.com पर रीडायरेक्ट करने के लिए मजबूर करना है जहां आपके पास शायद मुख्य साइट हो।

आप या तो होस्ट नाम को रीडायरेक्ट सेवा पर इंगित करके या routes.rb फ़ाइल में बाधा के साथ एक विशिष्ट मार्ग का उपयोग करके इसे पूरा कर सकते हैं।

+0

मैं वर्तमान में 3 DNS रिकॉर्ड CloudFlare पर स्थापित है: ए - mydomain.com - www - - * - - myapp.herokuapp की उर्फ ​​myapp.herokuapp.com CNAME की उर्फ ​​[आईपी पता] CNAME को इंगित करता है। कॉम मैंने www को हटाने का प्रयास किया है और यह वही काम करता है (मुझे लगता है कि इसे वाइल्डकार्ड द्वारा उठाया गया है?) इसे स्थापित करने के बारे में कोई विचार? क्या वह सही है? या एक उदाहरण मार्ग.आरबी बाधा के साथ भयानक होगा। आपके प्रतिक्रिया के लिए धन्येवाद! – Trinculo

संबंधित मुद्दे