首页 > 解决方案 > 在 .htaccess 文件的正则表达式中包含 URL 编码字符

问题描述

.htaccess对于不同语言的特殊字符,我需要在我的文件的正则表达式中包含 URL 编码符号。

我有以下内容,其中包括空格字符%20

RewriteRule ^search/([0-9a-zA-Z\s-]+)/?$ search.php?search=$1 [L,NC,QSA]

但我需要能够包含像õwhich is这样的字符%C3%B5

基本上我需要它来包含任何带有字符的 URL 编码%字符。

标签: regex.htaccessurlencode

解决方案


您可以使用[^\/] 否定字符类

^search/([^\/]+)/?$

它匹配

  • ^- 字符串的开始
  • search/ - 文字子串
  • ([^\/]+)- 捕获组 1(它匹配的内容用 引用$1):除此之外的任何 1+ 个字符/
  • /?- 一个可选的/
  • $- 字符串结束。

推荐阅读