< ![CDATA[

首先来看看SAE的文档

# 当 url 匹配 urldir/(.*) ,并且 输入 header referer 等于 sina 时,跳转至页面 /usr/$1,$1 表示刚刚匹配的 urldir/(.*) 中的 (.*) 部分。-rewrite:if (path ~ "urldir/(.*)" && in_header["referer"] == "sina") goto "/url/$1"# 当 url 匹配 urldir/(.*),并且请求的是一个目录时,跳转至 /url/$1-rewrite:if(is_dir( ) && path ~ "urldir/(.*)") goto "/url/$1"# 当 url 匹配 path,并且请求的不是一个文件时,跳转至 /url/query.php-rewrite:if(! is_file() && path ~ "path") goto "/url/query.php"# 当查询串等于so,并且 url 以 zhaochou 结尾时,跳转至 /url/%1,%1 表示 query_string 匹配到的部分。-rewrite:if(query_string ~ "^(so)$" && path ~ "zhaochou$") goto "/url/%1"# 当查询串不包含sohu,并且 url 以zhaochou结尾时,跳转至/url/query.php?%{QUERY_STRING},%{QUERY_STRING}表示查询串。-rewrite:if(query_string !~ "sohu" && path ~ "zhaochou$") goto "/url/query.php?${QUERY_STRING}"# 如果 url 既不是文件,也不是目录,跳转至 index.php?%{QUERY_STRING}-rewrite:if( !is_file() && !is_dir()) goto "index.php?%{QUERY_STRING}"

有点晦涩难懂,那么先来看看我需要做什么、

1.吐槽页面,将/t.php?page=$num改为更利于SEO的/t/$num.html

2.记录页面,这里要将/blog.php?page=$num改为/blog/page/$num.html

/blog.php?id=$num改为/blog/read/$num.html

3.工程页面,/peoject.php改为/project.html

所以,我就到网上搜索了一下,找到个这么个好东西。

http://saetools.sinaapp.com/appconfig.html

用这个工具就可以很方便的生成urlrewrite规则了。

那么,这个博客所要用到的规则就是

– rewrite: if( in_header[“Host”] !~ “blog.zhaojin97.cn” && path ~ “(.*)” ) goto “http://blog.zhaojin97.cn$1?%{QUERY_STRING}”

– rewrite: if(path ~ “list.html”) goto “blog.php”

– rewrite: if(path ~ “t.html”) goto “t.php”

– rewrite: if(path ~ “list-(d+).html”) goto “blog.php?page=$1”

– rewrite: if(path ~ “read-(d+).html”) goto “blog.php?id=$1”

– rewrite: if(path ~ “t-(d+).html”) goto “t.php?page=$1”

– rewrite: if(path ~ “project.html”) goto “project.php”

– rewrite: if(path ~ “admin.html”) goto “login.php”

基本实现了外部地址静态化,接下来就是改造程序了


]]>