如果字母中包含大寫字母,但如果它完全小寫(如果匹配,則會導致無限循環),則需要將其重寫爲小寫字母。Apache將小寫字母重寫爲
我想出了這一點,但很困惑,爲什麼它不工作:
# /MaTcHeD to matched
RewriteCond %{REQUEST_URI} ^(?i)matched(\/.*)?$
RewriteRule ^[a-z]*[A-Z]+[^\/]*(\/.*)?$ /matched$1 [R=301,L]
對我來說這表示,如果URL爲「一致」或「匹配」或「匹配」或「匹配」等。然後匹配如果在URL的開頭處有任何小寫字符([az]),後跟任何一個或多個大寫字符([AZ]),後跟任何非「/」字符,則匹配網址的其餘部分(可選「/」後面是其他任何內容)。如果這些條件是真的,那麼重定向到小寫「/匹配」。
我瀏覽過並看到許多匹配任何單詞的解決方案,但這會導致問題,因爲其他內容都是大寫的。在任何情況下,我只需要「匹配」,但全部小寫,重定向到全部小寫的「匹配」。
任何不使用'RewriteMap'的理由? – 2012-08-01 15:26:42
我使用RewriteMap進行了研究,但它只是小寫或大寫,沒有任何幫助。我需要匹配任何東西,只要它不全是小寫。 – Jim 2012-08-02 17:53:14
然後在先前的規則中匹配所有小寫字母,並禁止重寫或跳過低分組規則。 – 2012-08-02 19:23:33