301 从 /%anyfolder%/ 重定向到 /Specific folder/ - Apache

301 Redirect from /%anyfolder%/ to /Specific folder/ - Apache

我的网站有一堆旧的域路径。例如。

https://example.com/path1/file.html

https://example.com/path2/file.html

https://example.com/path3/file.html

https://example.com/path4/file.html

并且我想将所有流量从任何路径重定向到指定路径

https://example.com/my-new-path/file.html

我已经在我的 htaccess 文件中尝试了以下内容

RedirectMatch 301 ^.*/file.*$ /my-new-path/

但是,这会创建一个重定向循环,我明白为什么。问题是,我不知道如何解决这个问题。

我如何为 .* 任何东西创建捕获所有重定向,EXCEPT my-new-path

您可以像这样使用否定前瞻性正则表达式:

RedirectMatch 301 ^/(?!my-new-path/)[\w-]+/(file\..+)$ /my-new-path/

(?!my-new-path/) 是一个否定的先行断言,它使用 [\w-]+ 匹配下一个模式,除了 my-new-path.

确保使用新浏览器或清除浏览器缓存来测试此规则。