我正在使用下面的htaccess处理一些网址
B)https://www.example.com/online/development/id
规则:
RewriteRule ^online/(.*)/(.*)$ filename.php?key=$2 [L]
但现在我想使用下面的一些网址: -
https://www.example.com/development/id
我该怎么做?
答案 0 :(得分:2)
您可以使用此规则 -
RewriteRule ^([\w-]+)/([\w-]+)$ filename.php?key=$2 [QSA,L]
答案 1 :(得分:1)
你的正则表达式匹配:
^
- 输入的开始(HOST之后的部分)online/
- 文字字符序列online/
(.*)
- 尽可能多的0个字符,直到 last ... /
- 斜线,(.*)
- 第2组:任何零个或多个字符直到...... $
- 输入结束。因此,正则表达式可以在路径中包含任意数量的子部分。
如果您需要限制子部分的数量,请使用基于否定字符类的正则表达式:
RewriteRule ^[^/]*/([^/]*)$ filename.php?key=$1 [L]
[^/]+
匹配/
以外的1个字符。由于您未使用第1组,因此我建议删除第一组(
和)
,并在替换中使用$1
。
现在,正则表达式匹配:
^
- 输入开始[^/]*
- 除/
以外的零个或多个字符([^...]
称为否定字符类)/
- 斜线([^/]*)
- 第1组:见上文$
- 输入结束。这意味着路径中只能有一个斜杠。