简体   繁体   中英

.htaccess multiple url variable

i want to write .htaccess to show url with common patters for example

1: abc.com/mypage   --> works fine 
2: abc.com/mypage/page/1  --> works fine 
3: abc.com/mypage/category/2   --> works fine 
4: abc.com/mypage/page/1/category/2   --> not works fine

so below is my .htaccess code

RewriteRule mypage/page/([^/]*) /?p=main_page&page=$1 [L]
RewriteRule mypage/category/([^/]*) /?p=main_page&cid=$1 [L]
RewriteRule mypage/page/([^/]*)/category/([^/]*) /?p=main_page&page=$1&cid=$2 [L]
RewriteRule mypage /?p=main_page [L]

how can we fix it please guide way to fix it

You have a typo but more importantly you are missing anchors in your regex. You can use:

RewriteEngine On

RewriteRule ^mypage/page/([^/]+)/?$ ?p=main_page&page=$1 [L,QSA]
RewriteRule ^mypage/categroy/([^/]+)/?$ ?p=main_page&cid=$1 [L,QSA]
RewriteRule ^mypage/page/([^/]+)/category/([^/]+)/?$ ?p=main_page&page=$1&cid=$2 [L,QSA]
RewriteRule ^mypage/?$ ?p=main_page [L,QSA]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM