需要 apache 正则表达式配置来重写规则

问题描述 投票:0回答:1

我需要 apache RewriteRule 用于以下场景

  1. /测试/到/测试/
  2. /测试/a 到/测试/
  3. /测试/b 到/测试/
  4. /测试/c/1 到/测试/

下面的 RewriteRule 有效

RewriteRule ^/test/[abc].+$ /test/ [NC,PT]

重写规则是什么,如果

/test/
之后有一个或多个字符,则必须将其重定向到
/test/

我试过了

^/test/.+$ /test/ [NC,PT]

但这在 4 种情况中都不匹配,并重定向到 404。

regex apache mod-rewrite
1个回答
0
投票

原来的请求路径“/test/c/1”会匹配“^/test/[abc].+$”,匹配成功,所以请求路径由“test/c/1”变为“/测试/”。但由于 PT 标志,导致“/test/”路由回来,就好像“/test/”是新进来的,所以“/test/”将与“^/test/[abc].+$”匹配再次,但是这次匹配失败,所以你得到了 404。

将标志从 PT 更改为 L,行为是当原始请求路径“/test/c/1”与“^/test/[abc].+$”匹配成功时,重定向路径“/path”将是最终的道路。 apache 获取与“/test/”相关的资源并响应客户端。

© www.soinside.com 2019 - 2024. All rights reserved.