Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 重定向规则URL但子URL Apache2_Regex_Apache_Redirect_Apache2 - Fatal编程技术网

Regex 重定向规则URL但子URL Apache2

Regex 重定向规则URL但子URL Apache2,regex,apache,redirect,apache2,Regex,Apache,Redirect,Apache2,我正在将虚拟主机配置文件编辑为: 将所有/application/重定向到/platform/ 不重定向/application/api/v1/ 不影响其他别名 这意味着: /application 应重定向到 /platform /application/ 应重定向到 /platform/ /application/api/v1/ 不应重定向 /site/ 不应重定向 我用了一根火柴。影响/application/而不影响/site/ 但是/application/api/v1/即使在使用

我正在将虚拟主机配置文件编辑为:

  • 将所有
    /application/
    重定向到
    /platform/
  • 不重定向
    /application/api/v1/
  • 不影响其他别名
这意味着:

/application

应重定向到
/platform

/application/

应重定向到
/platform/

/application/api/v1/

不应重定向

/site/

不应重定向

我用了一根火柴。影响
/application/
而不影响
/site/
但是
/application/api/v1/
即使在使用以下基于正则表达式的规则时也会受到规则的影响:

  • RedirectMatch 308“^\/application\/(?!api\/v1)(.*)$”/platform/$1“
  • RedirectMatch 308“^(?!\/application\/api\/v1.*$)\/application(.*$)”“/platform$1”
  • RedirectMatch 308“^\/application\/($|)((([^a])([^p])(…[^i])(…[^\/])(…[^v])(…[^1]).$)”/platform/$1“
  • 我总是得到同样的结果:
    /application/
    将我重定向到
    /platform/
    (这很好)
    /site/
    不会重定向我(这很好)
    /application/api/v1/
    将我重定向到
    /platform/api/v1/
    (这就是问题所在)

    我在几个网站上测试了我的正则表达式,它们都不应该与
    /application/api/v1/
    匹配,但apache仍然像它们一样

    我尝试将
    RewriteRule
    RewriteCond
    一起使用,但我遇到了类似的问题

    为什么?