मैं अब कुछ दिनों के लिए इस पर काम कर रहा था और मैं सोच रहा था कि अगर कोई मुझे सही दिशा में इशारा कर सकता है तो कृपया ... मैं अपने पुनर्लेखन में दो चर पास करने की कोशिश कर रहा हूं।
जब तक दिए गए url एक फ़ाइल या निर्देशिका नहीं है, मैं "सभी urls को डायनामिक रूप से फिर से लिखना पसंद करता हूं:
example.com/category -> example.com/index.php?p=category
example.com/category/page -> example.com/index.php?p=category&article=page
example.com/category2/page -> example.com/index.php?p=category2&article=page
मैं कुछ गतिशील में निम्नलिखित बारी करने की कोशिश कर रहा एक कठिन समय रहा हूँ:
RewriteRule ^category/(.+?)$ ?p=category&article=$1 [L]
मैं यह कोशिश कर रहा हूँ, लेकिन यह काम नहीं करता है:
RewriteRule ^(.+?)/(.+?)$ ?p=$1&article=$2 [L]
... यह भी कोशिश कर रहा है, लेकिन यह भी काम नहीं करता है:
RewriteRule ^(.*)/(.+?)$ ?p=$1&article=$2 [L]
मैं इसे काम करने के लिए निम्नलिखित में डालने से बचने की कोशिश कर रहा हूं:
RewriteRule ^category2/(.+?)$ ?p=category2&article=$1 [L]
यहां पूरा कोड है:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^category/(.+?)$ ?p=category&article=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ?p=$1 [L]
अद्यतन करें:
यह वास्तव में मेरे लिए किया था:
RewriteRule ^([^/]+)(/([^/]+))? ?p=$1&article=$2 [L]
धन्यवाद!! एंड्रयू
उत्तर:
जवाब के लिए 2 № 1मैं एक विशेषज्ञ नहीं हूं, लेकिन मुझे लगता है कि यह आपके लिए करेगा:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ([^/]+)/([^/]+) index.php?p=$1&article=$2 [L]
कहा पे [^/]+
छोड़कर सबकुछ मेल खाता है /
, परिणाम जब परीक्षण किया गया htaccess.madewithlove.be
संपादित करें:
जैसा कि मैं पूरी तरह से भूल गया कि दूसरा पैरामीटर वैकल्पिक है, ओपी में महान अपडेट ने लगभग इस तथ्य को छोड़कर किया कि यह एक जोड़ता है /
पैरामीटर 2 मूल्य की शुरुआत में, क्योंकि $2
बाहरी समूह पर कब्जा कर रहा है, जबकि हमें आंतरिक एक की आवश्यकता है, जैसा कि इस छवि में दिखाया गया है:
बजाय बदलने के $2
साथ में $3
और इसे ठीक करना चाहिए:
RewriteRule ^([^/]+)(/([^/]+))? ?p=$1&article=$3 [L]