2017-03-02 71 views
0

規則:Tomcat的重寫閥問題

RewriteRule ^(\w)/(\w)/(\w)$ index.php/$1/$2/$3 

測試URI:

http://localhost/foo/bar/snafu 

預期結果:

http://localhost/index.php/foo/bar/snafu 

規則似乎並沒有在所有的匹配。我做錯了什麼?

與此相關的,是有什麼辦法可以記錄寫入規則和tomcat的命中率改寫閥?

回答

0

有幾個問題在這裏。 /是一個分隔符,因此如果要在URL中匹配正斜槓,則需要使用\/。由於語法無效,該規則將被跳過,並且該請求不會被傳遞給PHP。

另外,\w表示單個字字符(A-Z,A-Z,數字0-9,或_)。所以你只有匹配/f/b/s纔是請求。你需要的是+,它匹配一個或多個緊接其前面的東西 - 在這種情況下,\w

試試這個:

RewriteRule ^(\w+)\/(\w+)\/(\w+)$ index.php/$1/$2/$3