文章内容url
动态,不同文章只有后面的id数字不同而已
http://www.123.com/view.php?id=12
想伪静态成拼音目录 ( 域名/目录/id.html )
http://www.123.com/xinwendongtai/888.html
http://www.123.com/xinwendongtai/gongsidongtai/999.html
伪静态我现在写成这样,可以匹配正常。
rewriterule ^(.*)\.html$ /view.php?id=$1
栏目列表url
动态,不同列表只有后面的id数字不同而已
http://www.123.com/list.php?id=6
http://www.123.com/list.php?id=7
想伪静态成拼音目录 ( 域名/目录/ )
http://www.123.com/xinwendongtai/
http://www.123.com/xinwendongtai/gongsidongtai/
伪静态我现在写成这样,可以匹配正常。
rewriterule ^(.*)/$ /list.php?id=$1
现在的问题是,栏目列表的分页
http://www.123.com/list.php?id=6page=2
想伪静态成拼音目录 ( 域名/目录/list_栏目id_页码.html )
http://www.123.com/xinwendongtai/list_6_2.html
rewriterule ^(.*)/list_(\w+)_([0-9]+)\.html$ /list.php?id=$1&page=$2
为什么上面这个是错误的,跟上面的内容的伪静态冲突了?
回复讨论(解决方案)
list_6_2 这个作为一个传参应该怎么写正则?
rewriterule ^(.*)/list_(\w+)\.html$ /list.php?id=$1&page=$2
这样写好像也不对。
rewriterule ^(.*)\.html$ /view.php?id=$1
是不是跟这个冲突了
\w 是什么意思?apache 支持吗?
\w 是什么意思?apache 支持吗?
我那是乱写试试看行不行的,后来我改成这样了
栏目分页
http://www.123.com/xinwendongtai/list_6_2.html
#栏目分页
rewriterule ^(.*)/list_(.*)\.html$ /list.php?id=$1&page=$2
http://www.123.com/xinwendongtai/gongsidongtai/999.html
#文章页伪静态规则
rewriterule ^(.*)\.html$ /view.php?id=$1
标红的伪静态部分冲突了,不知道如何修改才能让它们各自正则。
用 (.*) 匹配了前面的部分了,后面的
栏目分页的最后是 list_6_2.html
内容页的最后是 999.html
就是不知道如何区分它们。
凡事都有规矩
http://www.123.com/xinwendongtai/list_6_2.html
要
rewriterule ^(.*)/list_([0-9]+)_([0-9]+)\.html$ /list.php?id=$1&page=$2
id=$1&page=$2
本来就是要经过 php 解析的
倒不如直接将 list_6_2.html 交给 php 解析,而减轻 apache 的负担
凡事都有规矩
http://www.123.com/xinwendongtai/list_6_2.html
要
rewriterule ^(.*)/list_([0-9]+)_([0-9]+)\.html$ /list.php?id=$1&page=$2
不行,会跟这个内容页的伪静态冲突
http://www.123.com/xinwendongtai/gongsidongtai/999.html
#文章页伪静态规则
rewriterule ^(.*)\.html$ /view.php?id=$1