2012-08-13 19 views
5

में प्रस्तुत नहीं किया गया है सिलेक्स माइक्रो-फ्रेमवर्क का उपयोग करके कस्टम 404 त्रुटि पृष्ठ प्रदर्शित करने का प्रयास करते समय मैं थोड़ा सा संघर्ष कर रहा हूं।सिलेक्स के साथ कस्टम 404 पेज प्रोड कॉन्फ़िगरेशन

मेरे परियोजना के रूप में कॉन्फ़िगर किया गया है इस प्रकार है:

  • , उत्पादन मोड में चलाने के लिए एक index.php पेज मिला एक prod.php विन्यास फाइल
  • चलाने के लिए index_dev.php एक मिला लोड हो रहा है में मोड डीबग करें। यह prod.php कॉन्फ़िगरेशन फ़ाइल का भी उपयोग करता है, लेकिन कुछ सेटिंग्स dev.php फ़ाइल द्वारा ओवरराइड हो जाती हैं, जैसे $app['debug']सत्य पर सेट किया जा रहा है।

तो मूल रूप से कॉन्फ़िगरेशन वही है।

इस प्रकार मैं एक त्रुटि हैंडलर को परिभाषित किया है:

$app->error(function (\Exception $e, $code) use ($app) { 

    // commented for testing purposes 
    /*if ($app['debug']) { 
     return; 
    }*/ 

    if ($code == 404) { 

     $loader = $app['dataloader']; 
     $data = array(
      'global' => $loader->load('global'), 
      'common' => $loader->load('common', $app['locale']), 
      'header' => $loader->load('header', $app['locale']), 
      'footer' => $loader->load('footer', $app['locale']) 
     ); 

     return new Response($app['twig']->render('404.html.twig', array('data' => $data)), 404); 
    } 

    return new Response('We are sorry, but something went terribly wrong.', $code); 

}); 

जब http://localhost:8888/index_dev.php/my-non-existing-page तक पहुँचने का प्रयास, मैं अपने 404 टेम्पलेट प्रदान की गई है और उम्मीद के रूप में प्रदर्शित मिलता है।

http://localhost:8888/my-non-existing-page तक पहुंचने का प्रयास करते समय, मेरा 404 टेम्पलेट प्रस्तुत नहीं किया गया है और मुझे इसके बजाय मानक 404 त्रुटि पृष्ठ मिलता है!

मेरी मदद करना मुश्किल हो सकता है। यदि आवश्यक हो तो अधिक जानकारी मांगने के लिए स्वतंत्र महसूस करें। मैं वास्तव में यह समझने के लिए तैयार हूं कि वास्तव में यहां क्या हो रहा है।

+0

आपकी एचटीएसीएसी कैसी दिखती है? – gunnx

+0

मेरे पास अभी तक कोई htaccess फ़ाइल परिभाषित नहीं है। बस मेरे स्थानीय सर्वर (एमएएमपी का उपयोग कर) पर वैश्विक विन्यास। क्या आप एक विशिष्ट सेटिंग के बारे में सोचते हैं? बात यह है कि मुखपृष्ठ सही तरीके से प्रदर्शित होता है, समस्या वास्तव में त्रुटि हैडलर "प्रोड" कॉन्फ़िगरेशन पर कस्टम 404 पृष्ठ प्रदर्शित नहीं करती है। –

+1

मैं आपको एक htaccess फ़ाइल होने की उम्मीद करता। सिलेक्स परियोजनाओं के साथ मैं यहां एक बहुत ही बुनियादी उपयोग करता हूं। पर रीवाइटइंजिन रीवाइटकंड% {REQUEST_FILENAME}! -f रिवाइट्रूल^index.php [एल, क्यूएसए] – gunnx

उत्तर

3

आपको अपनी index.php फ़ाइल में अनुरोधों को फिर से लिखना होगा। यह काम करने के लिए एक बुनियादी उदाहरण के लिए नीचे देखें।

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L,QSA]