2016-09-27 85 views
1

我想寫的.htaccess以示與普通patters URL例如的.htaccess多個url變量

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 

所以下面是我的.htaccess代碼

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] 

我們如何解決它,請指南的方法來修復它

+2

將'mypage/page /([^ /] *)/ categroy /([^ /] *)'更改爲'mypage/page /([^ /] *)/ category/([^ /] *)'(miss typed'category') –

+0

沒有兄弟,這是不是問題,我修復了問題 – gaurav

回答

1

你有一個錯字,但更重要的是你錯過了正則表達式中的錨。您可以使用:

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] 
+0

是[L,QSA]丟失 – gaurav

+0

'QSA'是查詢字符串追加。這個答案解決了嗎? – anubhava