.htaccess無法辨識正規表示式中的數字,請重新撰寫
P粉651109397
P粉651109397 2024-01-16 17:48:10
0
1
463

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

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

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

非常感謝任何幫助

  • /search/test test = 使用上述正規表示式可以運作
  • /search/ 123 123 = 無法工作

P粉651109397
P粉651109397

全部回覆(1)
P粉905144514

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

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

RewriteRule ^([^\s]*)(?:\s)+(.*)$ . [N,E=NOSPACE:1,DPI]
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!