我已經在.htaccess
檔案中寫了一個重寫規則,它會將URL中的任何空格替換為.
(點)。
它工作得很好,除非URL中有數字。
RewriteRule ^([^\s%20]*)(?:\s|%20)+(.*)$ . [N,E=NOSPACE:1,DPI]
非常感謝任何幫助
/search/test test
= 使用上述正規表示式可以運作/search/ 123 123
= 無法工作P粉9051445142024-01-17 12:35:49
在正規表示式字元類別中,字元%
、2
和0
被視為3個字面字符,而不是單一URL編碼的空格(即
)。因此,任何包含2
或0
的數字,如果還包含或後面接著一個空格,將會失敗,因為正規表示式無法匹配。 RewriteRule
pattern符合的是解碼後的URL路徑,所以根本不需要嘗試符合
。
所以,你只需要從規則中移除
。例如:
RewriteRule ^([^\s]*)(?:\s)+(.*)$ . [N,E=NOSPACE:1,DPI]