首頁  >  問答  >  主體

.htaccess無法辨識正規表示式中的數字,請重新撰寫

我已經在.htaccess檔案中寫了一個重寫規則,它會將URL中的任何空格替換為.(點)。

它工作得很好,除非URL中有數字。

RewriteRule ^([^\s%20]*)(?:\s|%20)+(.*)$ . [N,E=NOSPACE:1,DPI]

非常感謝任何幫助

P粉651109397P粉651109397251 天前424

全部回覆(1)我來回復

  • P粉905144514

    P粉9051445142024-01-17 12:35:49

    在正規表示式字元類別中,字元%20被視為3個字面字符,而不是單一URL編碼的空格(即 )。因此,任何包含20的數字,如果還包含或後面接著一個空格,將會失敗,因為正規表示式無法匹配。 RewriteRule pattern符​​合的是解碼後的URL路徑,所以根本不需要嘗試符合

    所以,你只需要從規則中移除 。例如:

    RewriteRule ^([^\s]*)(?:\s)+(.*)$ . [N,E=NOSPACE:1,DPI]

    回覆
    0
  • 取消回覆