2013-06-13 2 views
5

मैं /backend/www/index.php/page/create को /admin/page/create URL रीराइट करने की जरूरत है, तो मैं अगले अपाचे पुनर्लेखन नियम और शर्तों का उपयोग करें:अपाचे mod_rewrite दो बार मेरे यूआरएल को फिर से लिखता है क्यों?

RewriteCond %{REQUEST_URI} !-f 
RewriteCond %{REQUEST_URI} !-d 
RewriteCond %{REQUEST_URI} !backend\/www 

RewriteRule admin\/(.*)$ backend/www/index.php/$1 [NS,L] 

हालांकि, पुनर्लेखन लॉग की जांच, मैं अपाचे सही ढंग से पुनर्लेखन यूआरएल देखते हैं, लेकिन अंत में यह करता है एक अतिरिक्त पुनर्लेखन /page/create यूआरएल है, जो किसी भी हालत से मेल नहीं खाता पर विचार, तो यह विफल रहता है और मैं प्राप्त "निर्दिष्ट नहीं इनपुट फ़ाइल।" त्रुटि।

मैं कैसे अपाचे कि अतिरिक्त पुनर्लेखन प्रदर्शन करने के लिए रोका जा सकता है? मैं NS झंडा और RewriteCond %{IS_SUBREQ} f हालत इस्तेमाल किया और यह भी subrequest प्रदर्शन करती है।

धन्यवाद!

80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (2) init rewrite engine with requested uri /admin/page/create 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (1) pass through /admin/page/create 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (3) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] add path info postfix: /home/daniloaz/dev.daniloaz.com/httpdocs/admin -> /home/daniloaz/dev.daniloaz.com/httpdocs/admin/page/create 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (3) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] strip per-dir prefix: /home/daniloaz/dev.daniloaz.com/httpdocs/admin/page/create -> admin/page/create 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (3) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] applying pattern 'admin\/(.*)$' to uri 'admin/page/create' 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (4) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] RewriteCond: input='/admin/page/create' pattern='!-f' => matched 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (4) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] RewriteCond: input='/admin/page/create' pattern='!-d' => matched 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (4) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] RewriteCond: input='/admin/page/create' pattern='!backend\/www' => matched 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (4) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] RewriteCond: input='/admin/page/create' pattern='((admin\/(.*)$)|(admin$))' => matched 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (4) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] RewriteCond: input='false' pattern='f' => matched 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (2) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] rewrite 'admin/page/create' -> 'backend/www/index.php/page/create' 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (3) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] add per-dir prefix: backend/www/index.php/page/create -> /home/daniloaz/dev.daniloaz.com/httpdocs/backend/www/index.php/page/create 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (2) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] strip document_root prefix: /home/daniloaz/dev.daniloaz.com/httpdocs/backend/www/index.php/page/create -> /backend/www/index.php/page/create 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a35d60/initial] (1) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] internal redirect with /backend/www/index.php/page/create [INTERNAL REDIRECT] 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a472f0/initial/redir#1] (2) init rewrite engine with requested uri /backend/www/index.php/page/create 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a472f0/initial/redir#1] (1) pass through /backend/www/index.php/page/create 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a472f0/initial/redir#1] (3) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] add path info postfix: /home/daniloaz/dev.daniloaz.com/httpdocs/backend/www/index.php -> /home/daniloaz/dev.daniloaz.com/httpdocs/backend/www/index.php/page/create 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a472f0/initial/redir#1] (3) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] strip per-dir prefix: /home/daniloaz/dev.daniloaz.com/httpdocs/backend/www/index.php/page/create -> backend/www/index.php/page/create 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a472f0/initial/redir#1] (3) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] applying pattern 'admin\/(.*)$' to uri 'backend/www/index.php/page/create' 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a472f0/initial/redir#1] (1) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] pass through /home/daniloaz/dev.daniloaz.com/httpdocs/backend/www/index.php 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a4ce60/subreq] (2) init rewrite engine with requested uri /page/create 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a4ce60/subreq] (1) pass through /page/create 
80.29.4.44 - - [13/Jun/2013:21:40:54 +0200] [dev.daniloaz.com/sid#7f65e59b6a78][rid#7f65e5a4ce60/subreq] (1) [perdir /home/daniloaz/dev.daniloaz.com/httpdocs/] pass through /home/daniloaz/dev.daniloaz.com/httpdocs/page 
+0

आप "पृष्ठ/बनाने" अपने index.php फ़ाइल को पारित करने के लिए कोशिश कर रहे हैं:

मैं पूरी तरह से हल करने के लिए किसी भी इसे से संबंधित मुद्दे प्रयास करने से पहले mod_rewrite के आंतरिक भागों को समझने के लिए यह उपयोगी पोस्ट की अनुशंसा? – Bobulous

+0

हाँ, यह है कि यह, "पृष्ठ/controler" "नियंत्रक/कार्रवाई" मैं index.php को पास करना चाहते है। अपाचे http://dev.daniloaz.com/backend/www/index.php/page/create जब मैं http://dev.daniloaz.com/admin/page/create का अनुरोध एक आंतरिक पुन: निर्देशित करना चाहिए। – daniloaz

उत्तर

9

ठीक है, मैंने आखिरकार कामकाज का उपयोग करके इस मुद्दे को हल किया। सबसे पहले मैंने these solutions की कोशिश की, लेकिन बार-बार प्रदर्शन किया गया और पुनः लिखना पहले की तरह विफल रहा। mod_rewrite के साथ

, छोटे मतभेद यदि आप .htaccess में या वैश्विक विन्यास (httpd.conf, वर्चुअलहोस्ट विन्यास, आदि) में एक नियम डाल रहे हैं। Subrequests उस मतभेद में से एक हैं। बस उसी नियम को मैंने ऊपर वर्णित वर्चुअलहोस्ट कॉन्फ़िगरेशन फ़ाइल में .htaccess और subqueries के बजाय रोक दिया है और सब कुछ एक आकर्षण की तरह काम करना शुरू कर देता है। http://net.tutsplus.com/tutorials/other/a-deeper-look-at-mod_rewrite-for-apache/

+2

'/ etc/apache2/साइट-सक्षम/000-default.conf' से 'मल्टीव्यू' विकल्प को हटाने से कम से कम मेरे लिए समाधान का अंतिम भाग था। – gruppler

+0

मैंने इस समाधान की कोशिश की और मल्टीव्यू को गिरा दिया। अब मैं my.site/my-page लोड कर सकता हूं, लेकिन सभी/जेएस/... और/सीएसएस/... यूआरएल 404 के साथ /index.php पर रीडायरेक्ट हो जाते हैं। क्या मुझे कुछ याद आ रहा है? –

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