/ / HTACCESS: डायनामिक रीराइट यूआरएल कई वेरिएबल्स के साथ - php, .htaccess, mod-rewr

HTACCESS: डायनामिक रीराइट यूआरएल के साथ कई चर - php, .htaccess, mod-rewrite

मैं अब कुछ दिनों के लिए इस पर काम कर रहा था और मैं सोच रहा था कि अगर कोई मुझे सही दिशा में इशारा कर सकता है तो कृपया ... मैं अपने पुनर्लेखन में दो चर पास करने की कोशिश कर रहा हूं।

जब तक दिए गए 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]

यहां छवि विवरण दर्ज करें