2011-08-26 11 views
5

मैं चाहता हूँ निम्नलिखित पुनर्निर्देशन कार्यक्षमताPlayframework: किसी बाहरी URL

GET /google google.com 

मैं इस को लागू करना चाहिए के लिए मार्गों प्रवेश?

+0

मैं करने के लिए एक स्थानीय पथ मानचित्रण की सिफारिश नहीं होगा एक बाहरी यूआरएल, यह भ्रामक है और मानक नेविगेशन अनुभव नहीं है। मैं सिर्फ Google को एक लिंक जोड़ूंगा जहां आपको इसकी आवश्यकता है। –

+0

पेरे, google.com सिर्फ एक उदाहरण था। हमारे पास दो आंतरिक डोमेन साइटें हैं ... मुख्य साइट और एक ब्लॉग साइट कहें (एक diff डोमेन के तहत और एक अलग टीम द्वारा बनाए रखा)। मुझे blog.com – roshan

+0

पर जाने के लिए domiain.com/blog के एक साधारण रीडायरेक्ट की तरह ही सोचा जाएगा, अगर यह एप्लिकेशन के बाहर है (तो इसका अपना रास्ता होगा) तो मैं इसके लिए मार्गों का उपयोग नहीं करूंगा। रूट ऐप के पथ के लिए है। –

उत्तर

8

ऐसा लगता है कि सीधे मार्ग फ़ाइलों at this moment से ऐसा करना संभव नहीं है।

आप एक नियंत्रक में यह लागू हो सकते हैं:

public class Application extends Controller { 

public static void google() { 
    redirect("http://www.google.com"); 
} 
} 
+0

धन्यवाद। हां, यह अब तक का सबसे अच्छा समाधान है (अपाचे/वेब सर्वर के सामने)। यह सुनिश्चित नहीं है कि मार्ग इस मामले को संभाल सकते हैं तो – roshan

+3

एक एसईओ बिंदु दृश्य से, ऑफ-डोमेन रीडायरेक्ट करते समय मैं 'रीडायरेक्ट ("http://www.google.com", सत्य) का उपयोग करने की दृढ़ता से अनुशंसा करता हूं। ; ', जो खोज बॉट को इंगित करेगा कि सामग्री अस्थायी रूप से (302 के बजाय HTTP कोड 301) के बजाय, नए स्थान पर स्थायी रूप से स्थानांतरित हो गई है। 302 रीडायरेक्ट की बहुत विस्तृत चर्चा [यहां] (http://www.mattcutts.com/blog/seo-advice-discussing-302-redirects/)। – pents90

+5

मार्गों से प्रत्यक्ष रीडायरेक्ट भी उपलब्ध है: 'प्राप्त करें/मुख्य नियंत्रक। Default.redirect (to = "http://google.com/") ' – FoREacH

7
GET /google controllers.Default.redirect(to = "http://google.com/") 

(फिर से पोस्ट foreach की टिप्पणी की है, क्योंकि यह एक जवाब के रूप में यहाँ किया जा रहा लायक है)