Nginx

htaccess 匹配所有單詞直到最後一個斜杠並重定向 301

  • November 1, 2021

我試圖逃避一切,直到最後一個斜線,即使中間有一個斜線。例子:

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

/site_url/course/courseName 

或者

/site_url/course/courseName 

我如何使用 Nginx 或 Apache 實現這一點?

如果通過“轉義”,您的意思是“刪除”(如在您的範例中),那麼您可以在 Apache 配置(或.htaccess)文件中執行以下操作:

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

否定的前瞻(即。(?!/site_url/course/))確保重定向的請求也不會被重定向(這將導致重定向循環)。

這是假設您尚未使用 mod_rewrite。

這顯然不會對任何字母進行大寫,因為您的範例似乎從/coursenameto 開始/courseName,這不是可辨識的模式(除非這是文字文本?!)。

使用 302(臨時)重定向進行測試以避免潛在的記憶體問題。

引用自:https://serverfault.com/questions/1082278