Apache 2.4 - 不同 url 模式的 IF 块
Apache 2.4 - IF block for different url patterns
我正在尝试在一个重写文件中创建 if 块,并在 url 模式匹配时调用不同的重写文件
<If "%{REQUEST_URI} =~ /category1(.*)$/">
Include conf.d/sites/abc/301_redirections_category1.conf
</If>
<ElseIf "%{REQUEST_URI} =~ /category2/subcategory1(.*)$/">
Include conf.d/sites/abc/301_redirections_category21.conf
</ElseIf>
<Else "%{REQUEST_URI} =~ /category2/subcategory2(.*)$/">
Include conf.d/sites/abc/301_redirections_category22.conf
</Else>
我面临的问题:
- 对于第一个模式,
/category1(.*)$/
,它允许任何包含 category1 而不是 url 的 url 以 /category1 开头
- 第 2 和第 3 模式不工作并给出正则表达式语法错误。
我尝试了不同的语法但没有成功
m#/category1(.*)$/#i
m#/\s/category1(.*)$/#i
m#/\/category1(.*)$/#i
m#\s/category2\s/sucategory1(.*)$/#i
您能否尝试在您的正则表达式模式中添加起始锚点的代码:
<If "%{REQUEST_URI} =~ m#^/category1#">
Include conf.d/sites/abc/301_redirections_category1.conf
</If>
<ElseIf "%{REQUEST_URI} =~ m#^/category2/subcategory1#">
Include conf.d/sites/abc/301_redirections_category21.conf
</ElseIf>
<ElseIf "%{REQUEST_URI} =~ m#^/category2/subcategory2#">
Include conf.d/sites/abc/301_redirections_category22.conf
</ElseIf>
我正在尝试在一个重写文件中创建 if 块,并在 url 模式匹配时调用不同的重写文件
<If "%{REQUEST_URI} =~ /category1(.*)$/">
Include conf.d/sites/abc/301_redirections_category1.conf
</If>
<ElseIf "%{REQUEST_URI} =~ /category2/subcategory1(.*)$/">
Include conf.d/sites/abc/301_redirections_category21.conf
</ElseIf>
<Else "%{REQUEST_URI} =~ /category2/subcategory2(.*)$/">
Include conf.d/sites/abc/301_redirections_category22.conf
</Else>
我面临的问题:
- 对于第一个模式,
/category1(.*)$/
,它允许任何包含 category1 而不是 url 的 url 以 /category1 开头
- 第 2 和第 3 模式不工作并给出正则表达式语法错误。
我尝试了不同的语法但没有成功
m#/category1(.*)$/#i
m#/\s/category1(.*)$/#i
m#/\/category1(.*)$/#i
m#\s/category2\s/sucategory1(.*)$/#i
您能否尝试在您的正则表达式模式中添加起始锚点的代码:
<If "%{REQUEST_URI} =~ m#^/category1#">
Include conf.d/sites/abc/301_redirections_category1.conf
</If>
<ElseIf "%{REQUEST_URI} =~ m#^/category2/subcategory1#">
Include conf.d/sites/abc/301_redirections_category21.conf
</ElseIf>
<ElseIf "%{REQUEST_URI} =~ m#^/category2/subcategory2#">
Include conf.d/sites/abc/301_redirections_category22.conf
</ElseIf>