मेरे स्लग इस तरह दिखते हैं:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'<lang>/<p_page>/<p_category>/<p_product>' => 'splitter/manage-request',
'<lang>/<p_page>/<p_category>' => 'splitter/manage-request',
'<lang>/<p_page>' => 'splitter/manage-request',
'<lang>/' => 'splitter/manage-request',
'<lang>' => 'splitter/manage-request',
'' => 'splitter/manage-request',
],
],
मैं सभी अनुरोध उस SplitterController
को भेज रहा हूं जहां मैं उन्हें पार्स कर रहा हूं। लेकिन मैं नहीं चाहता कि AJAX को इसे भेजा जाए। क्या उन्हें कुछ डिफ़ॉल्ट मार्ग देना संभव है? उदाहरण के लिए उन्हें बैकएंड पुनर्निर्देशित करने के लिए। मुझे इसके बारे में दस्तावेज़ीकरण में जानकारी नहीं मिली? लिंक की सराहना करते हुए भी मैंने इसे याद किया है। शुक्रिया!
1 उत्तर
मेरे अनुभव के अनुसार, आपके संदर्भ के लिए संभवत: निम्नलिखित विकल्प हैं:
पहला: सबसे आसान तरीका है कि आप अपने स्प्लिटरकंट्रोलर में पहले एक्शन () जोड़ें, यह निर्धारित करें कि क्या यह पहले एक्शन () में एक अजाक्स अनुरोध है, और अपने लक्ष्य पते पर रीडायरेक्ट करें, उदाहरण के लिए:
public function beforeAction()
{
if (\Yii::$app->request->isAjax) {
return \Yii::$app->response->redirect($targetUrl);
}
return parent::beforeAction($action);
}
दूसरा: आप जांच सकते हैं कि अनुरोध nginx कॉन्फ़िगरेशन में एक अजाक्स अनुरोध है या नहीं और फिर अपने लक्ष्य पते पर रीडायरेक्ट करें
तीसरा: यदि आप अतिरिक्त रूटिंग नियम स्थापित नहीं कर सकते हैं और अजाक्स अनुरोध पते को कॉन्फ़िगर कर सकते हैं, तो आप UrlManager :: parseRequest () को अनुकूलित करके इसे लागू करने पर विचार कर सकते हैं, बस यह जांच लें कि यह अनुरोध को पार्स करने से पहले AJAX अनुरोध है या नहीं, फिर अपने लक्ष्य पर पुनर्निर्देशित करें। पता
इस उत्तर का अनुवाद Google अनुवाद से किया गया है
संबंधित सवाल
नए सवाल
yii2
Yii 2, Yii फ्रेमवर्क का नवीनतम संस्करण है - एक उच्च-प्रदर्शन, घटक-आधारित PHP फ्रेमवर्क