我正在尝试执行以下 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 的扩展名(\.
),最重要的是,将中间部分更改为(.+)
,它将斜杠之间的一个或多个字符捕获到变量中。这意味着正则表达式将无法匹配旧的存档脚本。