2012-09-30 77 views
1

我有一個搜索索引器索引我的應用程序中的特定頁面。我們爲建立索引而建立的網址是在應用程序中的其他網頁內提供的內容聚合。索引器應該看到聚合頁面,用戶應該看到找到的主題的第一頁/儀表盤。rails,根據用戶的IP地址重寫路由

我想看看我怎麼能線(經routes.rb中或的before_filter)大家除了搜索索引的話題的儀表盤。

例如。彙總頁面在這裏/ topics/123-my-topic/searchindex。索引器將該頁面作爲相關內容返回,因爲它具有所有主題123的內容。當用戶(不是搜索索引器IP)轉到/ topics/123-my-topic/searchindex時,它們應該被路由到/ topics/123-my-topic。

從本質上講,除了已知的IP地址之外,什麼是剝離/ searchindex關閉所有人的請求的最佳方式是什麼?

這可能可以通過Apache的.htaccess完成,但我寧願讓我的這個應用程序中,所以我不必須修改服務器上的文件,如果索引器的IP地址都沒有改變。

謝謝

馬特

回答

0
before_filter :redirect_users 

def searchindex 
    # :id => '123-my-topic' 
    redirect_users 
    # Handle searchindex traffic for the indexer 
end 

def redirect_users 
    unless ip == '127.0.0.1' 
    redirect_to :action => :show, :id => :topic_id 
    end 
end 
+0

所以我很清楚,我可以把這個變成我的主題控制器只是運行對話題的請求?還可以在此工作的任何主題請求/主題/ 123-TOPIC1/searchindex => /主題/ 123-TOPIC1,/主題/ 124-標題2/searchindex => /主題/ 124-標題2等..新手在這裏軌,謝謝。 – matt

+0

你應該把它放在你的TopicsController中。所有的redirect_users方法都會確定它是否是索引器。如果不是它將它們重定向到show動作而不是searchindex動作。 –