2009-10-16 41 views
1

我以前在這裏問過關於mod_rewrite的問題,並得到了完美的答案,但現在我需要做一些更復雜的事情,並且真的需要知道mod_rewrite的人的建議。複雜的htaccess重寫規則 - 我從哪裏開始?

我重寫規則是這樣的,到目前爲止:

RewriteRule ([a-zA-Z_-]+)/([0-9]?) index.php?cat=$1&page=$2 

和表示URL如下:/categoryname和節目,如/categoryname/1/頁面。

但我真的很想修改規則來處理子類別,例如/categoryname/subcategoryname/,並且仍然可以與頁面系統(subcat/2/)一起工作,但我似乎無法繞過這一點。

它需要,如果你在主目錄等

希望有人能幫助我忽略子貓重寫。

回答

1
RewriteRule [a-zA-Z_-]+/([a-zA-Z_-]+)/([0-9]?) index.php?cat=$1&page=$2 [L] 
RewriteRule ([a-zA-Z_-]+)/([0-9]?) index.php?cat=$1&page=$2 [L] 
+0

這是好的,但我真的不想使用貓和subcat變量,是否有可能將貓的名稱給貓變量,但如果沒有子貓存在使用第一隻貓? – David 2009-10-16 14:09:36

+0

當然。編輯... – chaos 2009-10-16 14:13:53

+0

哦哇,像夢一樣工作,不能夠感謝你足夠:) – David 2009-10-16 14:18:52

0

我會使用這些規則:

RewriteRule ^([a-zA-Z_-]+)/([a-zA-Z_-]+)/(([1-9][0-9]*)/)?$ index.php?cat=$1&subcat=$2page=$4 
RewriteRule ^([a-zA-Z_-]+)/(([1-9][0-9]*)/)?$ index.php?cat=$1&page=$3 

隨着斷言爲啓動(^)和字符串的結尾($)沒有歧義,以有那些規則不小心應用之一。而(([1-9][0-9]*)/)?部分用於可選分頁。