htaccess 匹配所有单词直到最后一个斜杠并重定向 301

htaccess 匹配所有单词直到最后一个斜杠并重定向 301

我试图转义最后一个斜线之前的所有内容,即使中间有一个斜线。例如:

/site_url/courses/cat1/cat2/subcat/coursename

/site_url/course/courseName 

或者

/site_url/course/courseName 

我如何使用 Nginx 或 Apache 实现这一点?

答案1

.htaccess如果“escape”的意思是“删除”(如您的示例所示),那么您可以在 Apache 配置(或)文件中执行以下操作:

RedirectMatch 301 ^(?!/site_url/course/).+/([^/.]+)$ /site_url/course/$1

负面前瞻(即(?!/site_url/course/))确保重定向的请求不会被重定向(这会导致重定向循环)。

假设您尚未使用 mod_rewrite。

这显然不会对任何字母大写做任何事情,因为你的例子似乎是从/coursename/courseName,这不是一个可辨别的图案(除非这是文字?!)

使用 302(临时)重定向进行测试以避免潜在的缓存问题。

相关内容