2012-08-02 54 views
0

我在secure.website.com上有一個安全的付款頁面。使用設計在特定頁面上註銷,註銷休息時間,表示沒有id = sign_out的用戶。我猜這是因爲當我在安全頁面上時,該頁面上的所有鏈接也都有secure.website.com/users/sign_out(例如)。如何在使用link_to時始終將www用作子域名

而不是總是指定我想在我的link_to中使用www作爲url ...我想將它設置爲默認值。我試着做default_url_options,但似乎沒有工作。除非另有說明,我如何確保所有鏈接永遠是www子域名?

最後,我一直在做,以保證網頁是WWW,除非安全頁面上是這樣的:

def always_use_www 
    if params[:controller] != 'subscriptions' && request.subdomain != 'www' 
     redirect_to :subdomain => "www" 
    end 
    end 

我濾波器之前把這個應用程序控制器作爲。這似乎是一個非常糟糕的做法。有沒有「正確」的方式?我只想讓一個安全頁面擁有不同的子域名,否則總是使用www。

+0

聽起來更像是一個Web服務器問題,你是在apache或nginx上運行它嗎?他們應該爲這樣的場合重新規劃路線。 – Saifis 2012-08-02 06:34:33

回答

0

您可以創建一個方法default_url_options

def default_url_options 
    { 
    :host => "www.example.com", 
    :only_path => false 
    } 
end 

你可以把在子控制器的應用控制器此方法。據我所知,你只能設置整個主機,而不是子域。一般來說,您可以在此方法中支持任何選項url_for

+0

在我登錄secure.website.com頁面時無法正常工作......它仍將所有鏈接都顯示爲secure.website.com/blabla – 2012-08-02 05:35:10

+0

嘗試添加:only_path => false。 – 2012-08-02 10:07:35

相關問題