我试图转义最后一个斜线之前的所有内容,即使中间有一个斜线。例如:
/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(临时)重定向进行测试以避免潜在的缓存问题。