簡體   English   中英

使所有Django URL不區分大小寫?

[英]Make all Django URLs case insensitive?

我正在使用其中包含70多個應用程序的大型Django安裝程序。 最近的一項要求是使其與不區分大小寫的URL一起使用。 有沒有辦法讓每個應用程序都使用不區分大小寫的URL,而不必更改每個應用程序的urls.py?

使單個應用程序不區分大小寫是一個非常簡單的過程(例如: Django的大小寫不敏感的url? ),但是鑒於應用程序的數量,是否有更好的方法(例如:中間件)呢?

  1. 中間件? 好了,您可以將process_request中的請求本身重定向或更改為lower(url)或更復雜的東西。 不過,我會避免這樣做,因為“ 70多個應用程序”會創建大量的額外負載。

  2. 您可以配置您的Web服務器(nginx?apache?)。 我相信這是一個好方法。

  3. 您可以grep和sed您的來源。 如果您的IDE不提供此類功能。 那就是我絕對希望的。

  4. 您可以將urlpatterns包裝到一個方法中,該方法將在每個正則表達式(url模式)前面應用(?i) )。

  5. 當然,您總是可以猴子修補某些東西。 但這是一個非常非常丑陋的解決方案。 不過,如果您感到絕望, LocaleRegexProvider.regexurlresolvers中使用LocaleRegexProvider.regex

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM