正则表达式,modrewrite php apache

时间:2011-05-19 14:24:35

标签: php regex apache mod-rewrite

任何人都可以看到这个问题吗?

网址通常是这样的:

page_test.php页= latest_news&安培;?ID = 10518271191304876236

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

非常感谢

3 个答案:

答案 0 :(得分: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 :(得分:1)

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

你应该致电:

www.yourdomain.com/latest_news/10518271191304876236

答案 2 :(得分:1)

由于下划线[a-zA-Z0-9]

latest_news与_不匹配:您可以使用包含下划线的字符类\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