Nginx用两个变量重写一个URL

时间:2014-10-31 23:00:06

标签: nginx url-rewriting rackspace-cloud

我一直试图解决这个问题。

这是我的设置

/www/index.php
/www/page.php

我想要一些SEO网址:

/www/page.php?pageId=45&catId=34

我的NGINX重写是

location / {
rewrite ^/([A-Za-z]+)/([A-Za-z]+)$ /page.php?pageId=$1&catId=$2; 
}

但是如果尝试了网址site.com/1/23 - 会触发404.有人可以帮忙吗?我是否还可以重定向到该URL,以防有人直接尝试page.php ..

1 个答案:

答案 0 :(得分:1)

正则表达式A-Za-z仅匹配大写和小写字母。要与数字匹配,您应该在上面的正则表达式中添加0-9,即

rewrite ^/([A-Za-z0-9]+)/([A-Za-z0-9]+)$ /page.php?pageId=$1&catId=$2; 

有关演示和说明,请点击this regex101 page