2011-05-19 61 views
0

任何人都可以看到这个问题吗?正则表达式,modrewrite php apache

URL是这通常:

page_test.php页= latest_news & ID = 10518271191304876236

重写规则^([A-ZA-Z0-9] +)/([A-ZA- Z0-9] +)$ page_test.php页面= $ 1 & ID = $ 16

千恩万谢

回答

1

latest_news不[a-zA-Z0-9]因为下划线_的匹配:你可以使用字符类别\w,其中包括下划线:

RewriteRule ^(\w+)/([a-zA-Z0-9]+)$ page_test.php?page=$1&id=$2 

如果id总是数字,你可以缩短它更用数字字符类\d

RewriteRule ^(\w+)/(\d+)$ page_test.php?page=$1&id=$2 
3

有网址中没有/,你的模式是需要一个:

RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ page_test.php?page=$1&id=$2 
          ^---here 

基本上你正在寻找:

one-or-more alpha-numerics separated by a/followed by one-or-more alphanumerics. 
1
RewriteRule ^([a-zA-Z0-9_]*)/([0-9]+)$ page_test.php?page=$1&id=$2 

,你应该从调用:

www.yourdomain.com/latest_news/10518271191304876236