今天将一个系统从Windows平台迁移到Linux下,但是迁移的url rewrite(Windows平台下用ISAPI_Rewrite做的重写)规则却一直不生效...
pbdigg3.0的伪静态规则(ISAPI_Rewrite Rules):
RewriteRule ^(.*)/index([0-9]+) $1/index\.php\?p=$2
RewriteRule ^(.*)/category/([0-9]+)(/([0-9]+))?$ $1/category\.php\?cid=$2&p=$4
RewriteRule ^(.*)/user/([0-9]+)(/([0-9]+))?$ $1/user\.php\?uid=$2&p=$4
RewriteRule ^(.*)/show/([0-9]+)(/([0-9]+))?$ $1/show\.php\?tid=$2&p=$4
修改为nginx的规则为:
location / {
rewrite ^(.*)/index([0-9]+)$ $1/index\.php\?p=$2 last;
rewrite ^(.*)/category/([0-9]+)(/([0-9]+))?$ $1/category\.php\?cid=$2&p=$4 last;
rewrite ^(.*)/user/([0-9]+)(/([0-9]+))?$ $1/user\.php\?uid=$2&p=$4 last;
rewrite ^(.*)/show/([0-9]+)(/([0-9]+))?$ $1/show\.php\?tid=$2&p=$4 last;
}
重启了N遍nginx,就是不生效。
后来在网上看到了一篇文章提到,nginx rewrite规则的后半部分不需要对特殊字符进行转义。
于是就把后半部分的转义去掉:
location / {
rewrite ^(.*)/index([0-9]+)$ $1/index.php?p=$2 last;
rewrite ^(.*)/category/([0-9]+)(/([0-9]+))?$ $1/category.php?cid=$2&p=$4 last;
rewrite ^(.*)/user/([0-9]+)(/([0-9]+))?$ $1/user.php?uid=$2&p=$4 last;
rewrite ^(.*)/show/([0-9]+)(/([0-9]+))?$ $1/show.php?tid=$2&p=$4 last;
}
重启后,ok!
呵呵,谢谢
VaTG790i.最好的<a href=http://www.kyfei.com>网站推广软件</a>,
非常好
....................
;ui;普i;uighur;ui;ui;个
在unix网络编程中看到了关于TCP/IP的一些内容,我感觉还是写的不够。正在下载中,一定
下载地址呢