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