Gumbo का यह समाधान फ़ाइलों के लिए अच्छा काम करता है, फिर भी यह निर्देशिका के साथ काम नहीं करता। दूसरे शब्दों में:
mysite.com/file1.php
के लिए, यह mysite.com/file1/
दिखाता है जो बहुत अच्छा है। फिर भी, यह निर्देशिकाओं के लिए अच्छी तरह से काम नहीं करता है। अगर मैं निम्न निर्देशिका तक पहुँचने का प्रयास, mysite.com/dir1
(कि index.php फ़ाइल के अंदर शामिल हैं) के बजाय http:/mysite.com/dir1/index.php
की सामग्री और यूआरएल दिखाने का:
:
mysite.com/dir1/
, यह 404.
मेरे समाधान के आसपास यह था रिटर्न
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+\.php
RewriteRule (.*)\.php$ /$1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)/$ $1.php [L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .*[^/]$ $0/ [L,R=301]
दूसरे शब्दों में, यदि कोई निर्देशिका हो तो कुछ भी नहीं करना।
उम्मीद है कि यह मदद करता है।
मूल समाधान के साथ एक और समस्या यह है कि सीएसएस और छवियों को लोड नहीं किया जाता है जब तक कि मैं सीएसएस फ़ाइल के पथ और पूर्ण पथ पर छवियों को परिवर्तित नहीं करता।
क्या इसे हल करने का कोई अन्य तरीका है, इसके बजाय वेबसाइट में सभी फ़ाइलों में सभी पथों को पूर्ण करने के लिए।
बहुत बहुत धन्यवाद।
आप वास्तव में दृष्टिकोण आप की कोशिश की उल्लेख नहीं किया है - (यह मानते हुए फिर से लिखने के नियमों के अपने वर्तमान सेट कर रहे हैं क्या आप mod_rewrite का उपयोग कर रहे हैं)? यदि आप mod_rewrite का उपयोग नहीं कर रहे हैं, तो आप क्या उपयोग कर रहे हैं? –
रिवाइटबेस/ रिवाइट्रूल ^() $ index.php [एनसी, एल] रिवाइटकॉन्ड% {REQUEST_URI}! (^ /?। * \ .. * $) [एनसी] रिवाइट्रूल^(। *) $ $ 1.php [एनसी] वर्तमान में फ़ोल्डर गहराई के बावजूद फ़ाइलों से .php एक्सटेंशन को हटाने के लिए ठीक काम करता है। हालांकि, 404 त्रुटि में एक परिणाम जोड़ना, और मजबूर स्लैश समाधान को एकीकृत करने के सभी प्रयासों ने समस्याएं पैदा की हैं। –
कृपया एक उत्तर स्वीकार करें, यह प्रश्न अन्य प्रश्नों से भी जुड़ा हुआ है। –