Nginx 重定向到另一个目录但索引页

Nginx 重定向到另一个目录但索引页

我正在尝试执行以下 nginx 重定向

/news/today-xx/index.php (xx will be moving with new page)
/blog/category-xx/today-xx/index.php

/article/today-xx/ (xx will be moving with new page)
/article/category-xx/today-xx/

但仍想访问档案页面。

/news/index.php and /news/
/blog/index.php and /blog/

这是我目前所拥有的

 location ^~ /(news|blog)/(.*) {
    return 301 /article/$1;
 }

答案1

这应该可以做到:

location ~ ^/(news|blog)/(.+)/index\.php$ {
    return 301 /article/$1;
}

我添加了起始和结束锚点(^$),转义了 php 的扩展名(\.),最重要的是,将中间部分更改为(.+),它将斜杠之间的一个或多个字符捕获到变量中。这意味着正则表达式将无法匹配旧的存档脚本。

相关内容