2013-01-08 10 views
5

मैं index.php को दूर एक यूआरएल के रूप में कोशिश कर रहा हूँ से index.php दूर करने के लिए कैसे:स्लिम ढांचे यूआरएल

इस काम करता है

http://server/bw/index.php/test 

यह काम नहीं करता

http://server/bw/test 

मैं .htaccess को बदलने और वेब पर देखने का प्रयास करता हूं, मुझे लगता है कि यह इस तरह होना चाहिए:

RewriteEngine On 
RewriteBase /bw/ 

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

मैं इस तरह से यह संपादन करने की कोशिश:

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

या इस तरह से:

RewriteEngine On 

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

या इस तरह से:

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

लेकिन जब मैं http://server/bw/test करने तक पहुँचने का प्रयास यह मुझे कहता है:

Not Found 

The requested URL /bw/test was not found on this server. 

Apache/2.2.15 (CentOS) Server at server Port 80 

मैं जाँच करें कि अंदर मेरे httpd.confLoadModule rewrite_module modules/mod_rewrite.so है .. .. मैं अब क्या करना नहीं जानते सक्षम

मैं कैसे हल कर सकते हैं? कृपया मेरी मदद करें!

उत्तर

6

इसे आजमाएं, उदाहरण के लिए वर्डप्रेस

RewriteRule . index.php [L] 

या यह, जिसका उपयोग उदाहरण के द्वारा किया जाता है Lavavel पीएचपी फ्रेमवर्क

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

तुम भी फिर से लिखना से पहले

RewriteCond %{REQUEST_FILENAME} !-d 

जोड़ने भी मौजूदा निर्देशिका, न केवल मौजूदा फ़ाइलों को बाहर करने पर विचार करें। लेकिन यह आप पर निर्भर है।

+0

कुछ भी नहीं करना .. यह काम करता है नहीं है .. दोनों पहले और दूसरे नियमों – JackTurky

+0

साथ आप एक में इन पंक्तियों डाल दिया। एचटीएसीएएस फ़ाइल आपको जांच करनी चाहिए कि क्या आपके पास निर्देश है कि ऑर्डर ओवरराइड आपके सभी या FileInfo पर सेट है httpd.conf या वर्चुअलहोस्ट कॉन्फ़िगरेशन क्योंकि mod_rewrite को इसकी आवश्यकता है (देखें [अपाचे दस्तावेज़] (http://httpd.apache.org/docs/current/mod/core.html#allowoverride)) – Dehalion

+0

मैंने AllowOverride को सभी के अंदर सेट करने का प्रयास किया httpd.conf लेकिन जब मैं index.php के बिना यूआरएल पर जाने का प्रयास करता हूं तो यह उस निर्देशिका के index.php को लोड करता है जो निर्देशिका में है जिसमें पतली ढांचे के index.php – JackTurky

0

मेरे लिए, मैं चीजों को Dehalion के जवाब से इस लाइन का उपयोग कर काम करने के लिए मिल गया:

RewriteRule . index.php [L] 

तो index.php (या किसी भी xyz.php) फ़ाइल अनुरोध यूआरएल में नहीं देखा जाता है

http://localhost/demo1/mycompany/hello/Jim 
निम्न चेतावनियां साथ

:

  1. आप इस मार्ग को परिभाषित किया है:

    $ ऐप-> प्राप्त करें ('/ mycompany/हैलो /: नाम', doHello);

  2. मूल तत्व (मार्ग/mycompany/.. के लिए) भी फ़ाइल का नाम है।
    यही है, मार्ग "mycompany" नामक फ़ाइल में मौजूद है।php "

हाँ, यह एक हैक का एक सा है ... लेकिन जब से मुझे लगता है अपाचे config भ्रामक/डराना :) ... मैं समझ इस समाधान पर्याप्त स्थिर आवश्यकताओं को पूरा करना है।

0

मेरे मामले में मैं AllowOverride All अद्यतन, तो sudo a2enmod rewrite चलाने आंतरिक 500 त्रुटि से बचने के फिर पुन: प्रारंभ अपाचे service apache2 restart

संबंधित मुद्दे