Nginx:
rewrite /tag/([a-z0-9]+)/$ /e/tags/itag.php?tagid=$1 last;
rewrite /tag/([a-z0-9]+)-([0-9]+).html$ /e/tags/itag.php?tagid=$1&page=$2 last;
rewrite ^/search-(.+?)-(.+?).html$ /e/search/result/index.php?page=$1&searchid=$2;
Nginx的rewrite规则转换为Apache,应该是这样的:
RewriteEngine On
RewriteRule ^tag/([a-z0-9]+)/$ /e/tags/itag.php?tagid=$1 [L]
RewriteRule ^tag/([a-z0-9]+)-([0-9]+).html$ /e/tags/itag.php?tagid=$1&page=$2 [L]
RewriteRule ^search-(.+?)-(.+?).html$ /e/search/result/index.php?page=$1&searchid=$2 [L]
说明:
- ^ 表示匹配行首,/ 在此不需要转义;
- $ 表示匹配行尾;
- ([a-z-9]+) 匹配小写字母和数字,+ 表示至少出现一次;
-
- 表示匹配中划线;
- .* 匹配任意字符,+ 表示至少出现一次,? 表示非贪婪匹配;
- (...) 表示一个匹配组,可以通过$1, $2等引用;
- [L] 表示 Last,代表这个规则是最后一个规则,不再执行后续规则。
注意:
- Apache的rewrite语法与Nginx不同,需要使用RewriteRule指令;
- Apache的匹配规则必须加上^和$,因为默认情况下会匹配整个URL;
- Apache没有last标志,可以用[L](拦截)替代;
- Apache的匹配变量需要用符号引用,而Nginx则是以符号引用,而Nginx则是以为前缀,例如Nginx的$1,在Apache中应写成$1。
上一篇:给十年后自己的一封信
下一篇:python3 判断字符串包含