2012-12-05 22 views
5

पर काम नहीं कर रहा है मेरे पास 3 सर्वर, एक स्थानीयहोस्ट अपाचे सर्वर, एक परीक्षण दूरस्थ सर्वर और उत्पादन लाइव सर्वर है।कोडनिर्देशक, रूटिंग उत्पादन सर्वर

मैं बिना 'index.php' 100% काम करता है उन सभी को 3 पर और स्थानीय होस्ट और परीक्षण सर्वर मार्ग पर CodeIgniter और साइट पर सेट-अप का एक ही स्थापना की है। हालांकि, उत्पादन सर्वर पर, कोई फर्क नहीं पड़ता कि यूआरएल केवल होमपेज (डिफ़ॉल्ट नियंत्रक के माध्यम से) दिखाया जाएगा, ऐसा लगता है कि सभी रूटिंग नियमों को डिफ़ॉल्ट को छोड़कर अनदेखा किया जा रहा है।

यदि यूआरएल में index.php जोड़ा गया है तो यह काम करेगा जैसा कि यह माना जाता है।

उदाहरण के लिए अगर उत्पादन साइट पर यूआरएल है: 'www.mysite.com/information' तो सामग्री लोड डिफ़ॉल्ट नियंत्रक के रूप में है।

लेकिन जब उत्पादन साइट पर यूआरएल है: 'www.mysite.com/index.php/information' तो सामग्री लोड 'सूचना' नियंत्रक से है।

यह मेरा htacess फ़ाइल की सामग्री है: http://pastebin.com/7Ewc2bwN

मेरे $ config [ 'index_page'] कुछ भी नहीं करने के लिए सेट है: http://pastebin.com/cDaZVJ8A

यह मेरा मार्गों कॉन्फ़िग फ़ाइल है।

मैं वास्तव में जानते हो क्यों अपने काम नहीं कर रहा है, वही सभी सर्वरों पर ही CodeIgniter और mod_rewrite की अवधि में सेटअप उत्पादन सर्वर पर काम कर रहा है न।

मुझे नहीं पता कि क्या करना है, मैं क्या गलत कर सकता हूं?

+0

क्या आपने जांच की थी कि 'application.php'' application/config/production' निर्देशिका में मौजूद है या नहीं? अगर फ़ाइल मौजूद है तो यह 'एप्लिकेशन/कॉन्फ़िगरेशन' निर्देशिका में से एक को ओवरराइड कर देगी। – Stanley

+0

@ स्टैनले, यह सही जगह पर उत्पादन सर्वर पर मौजूद है। – Nicekiwi

+0

@ स्टैनले, प्रतीक्षा करें क्या? कॉन्फ़िगर निर्देशिका में कोई फ़ोल्डर्स नहीं हैं? – Nicekiwi

उत्तर

6

यह एक आम समस्या है जो अक्सर तब होती है जब लोग कोडिनेटर को एक पर्यावरण से दूसरे वातावरण में स्थापित करते हैं। मुझे नहीं पता कि यह क्यों होता है, सर्वर ओएस या अपाचे सेटिंग्स में एक अंतर हो सकता है, लेकिन समाधान अक्सर आपकी .htaccess फ़ाइल में index.php के लिए RewriteRule में एक प्रश्न चिह्न ? जोड़ने के लिए होता है।

ओल्ड:

RewriteRule ^(.*)$ index.php/$1 [L] 

नई:

RewriteRule ^(.*)$ index.php?/$1 [L] 
+1

मुझे यह समस्या कभी नहीं मिली है, लेकिन एक संभावित समाधान जानने के लिए अच्छा है – m4t1t0

1

अपने अपाचे आभासी मेजबान विन्यास की जाँच करें और सत्यापित करें कि आप अपने निर्देशिका परिभाषा AllowOverride All है।

+0

मेरे पास उस तक पहुंच नहीं है, यह एक साझा सर्वर है। – Nicekiwi

1
  1. शायद आपकी .htaccess फ़ाइल में कुछ गड़बड़ है?

    एक बार जब मुझे उत्पादन सर्वर पर एप्लिकेशन स्थानांतरित किया गया तो मुझे समस्या आई, क्योंकि रिवाइटबेस को विकास सर्वर पर कुछ निर्देशिका में सेट किया गया था।

    मेरे उत्पादन सर्वर एप्लिकेशन पर वेब रूट निर्देशिका में था, इसलिए RewriteBase/ होना चाहिए, और मेरे पास /something था।

  2. एक बार मैं ऊपरी/lowercases, जब मैं उत्पादन (लिनक्स) के लिए विकास सर्वर (विंडोज़) से साइट में ले जाया साथ मूर्खतापूर्ण समस्या थी।

+0

मेरी इच्छा है कि यह इतना आसान हो, आप प्रश्न में लिंक से स्वयं के लिए अपनी htacess फ़ाइल देख सकते हैं। यह सही है। – Nicekiwi

+0

अब एक नजर डालें @Ezra। मैंने एक और टिप जोड़ा। – Kamil

0

मैं एक ही समस्या थी।मैं आलेख नामों को यूआरएल (slugify) में बदलने के लिए फ़ंक्शन का उपयोग कर रहा था।

स्थानीयहोस्ट पर और सर्वर पर यह फ़ंक्शन थोड़ा अलग यूआरएल लौटा।