求大神看看伪静态规则..

叫我梁大侠 2015-06-24 09:33:17
RewriteRule ^/member/(.*)/(.*)/(.*)/(.*)\.html$ /member/$1\.php?$2=$3&page=$4 [NC]
RewriteRule ^/member/(.*)/$ /member/$1\.php [NC]
RewriteRule ^/member/(.*)/(.*)/(.*)\.html$ /member/$1\.php?$2=$3 [NC]
RewriteRule ^/display/(.*)\.html$ /member/display\.php?mid=$1 [NC]
RewriteRule ^/member/(.*)/(.*)\.html$ /member/$1\.php?page=$2 [NC]

我刚弄这个伪静态 这是我写的(莫见笑啊),我现在就是发现一个很奇怪的地方:红色部分我放到下面

RewriteRule ^/member/(.*)/$ /member/$1\.php [NC]
RewriteRule ^/member/(.*)/(.*)/(.*)\.html$ /member/$1\.php?$2=$3 [NC]
RewriteRule ^/display/(.*)\.html$ /member/display\.php?mid=$1 [NC]
RewriteRule ^/member/(.*)/(.*)\.html$ /member/$1\.php?page=$2 [NC]
RewriteRule ^/member/(.*)/(.*)/(.*)/(.*)\.html$ /member/$1\.php?$2=$3&page=$4 [NC]

就没用,是不是伪静态正则会像CSS或者程序一样的,越后面的规则越按前面的规则行使啊?还是别的原因呢?
...全文
104 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
傲雪星枫 2015-06-25
  • 打赏
  • 举报
回复
顺序是有关系的。 前面匹配了,就不会执行后面的。
lzding 2015-06-25
  • 打赏
  • 举报
回复
[NC] 是忽略大小写。 默认不加参数的情况下,请求的URL有多条匹配的 RewriteRule 时,会使用最后一条规则进行重写; 你可以添加上 [L] 参数,表示这条规则匹配了,就不再继续匹配后面的规则了 把参数越多的放在最前面试试 RewriteRule ^/member/(.*)/(.*)/(.*)/(.*)\.html$ /member/$1\.php?$2=$3&page=$4 [NC,L] RewriteRule ^/member/(.*)/(.*)/(.*)\.html$ /member/$1\.php?$2=$3 [NC,L] ......
叫我梁大侠 2015-06-24
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
RewriteRule ^/member/(.*)/$ /member/$1\.php [NC] RewriteRule ^/member/(.*)/(.*)/(.*)\.html$ /member/$1\.php?$2=$3 [NC] 显然 (.*) 包含了 (.*)/(.*)/(.*)\.html N(next round) 重新从第一条规则开始运行重写过程。 C(chained with next rule) 与下一条规则关联 第二条规则也强制回到第一条
谢谢版主大叔 好久不见你了 你在CSDN-PHP来发群里么 我还一直以为[nc] 表示忽略大小写呢 我刚才那段伪静态写法 能否优化呢
xuzuning 2015-06-24
  • 打赏
  • 举报
回复
RewriteRule ^/member/(.*)/$ /member/$1\.php [NC] RewriteRule ^/member/(.*)/(.*)/(.*)\.html$ /member/$1\.php?$2=$3 [NC] 显然 (.*) 包含了 (.*)/(.*)/(.*)\.html N(next round) 重新从第一条规则开始运行重写过程。 C(chained with next rule) 与下一条规则关联 第二条规则也强制回到第一条

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧