【发布时间】:2018-05-16 14:09:18
【问题描述】:
我尝试重写此 URL。第 4 组是可选的,直到问号为止。即使没有 g4 或斜线,也必须捕获第 5 组。必须在没有第 3 组的情况下捕获第 4 组。
https://www.example.de/prefix/group1/group2/group3-suffix/group4(optional)?group5
Regex 似乎在大多数 regex 风格中完全符合需要,但在我的 .htaccess 中,第 5 组始终为空。
我的重写看起来像这样:
RewriteRule ^prefix/([^/]*)/([^/]*)/([^/]*)-suffix?/?((?:(?![?/]).)*)/?\??(.*)?/?$ /target.jsp?g1=$1&g2=$2&g3=$3&g4=$4&$5 [L]
感谢您的帮助!
【问题讨论】:
-
因为
?group5是一个查询字符串?! -
G5 将是问号之后的所有内容。事实上,这可以是一个查询字符串。 G4 查找直到 qm 或正斜杠。
-
RewriteRule不查看查询字符串,因此结果不同。 -
我希望从未问过这个问题。你把我带到了正确的道路上。我需要使用 RewriteCond 来获取查询参数。
标签: regex .htaccess mod-rewrite capture lookahead