gpt4 book ai didi

Apache RewriteRule 与 RewriteMap

转载 作者:行者123 更新时间:2023-12-02 09:58:26 26 4
gpt4 key购买 nike

我有一个 RewriteMap,如下所示:

Guide           1
Mini-Guide 2
White Paper 3

我将它包含到 Apache via

RewriteMap legacy txt:/var/www/site/var/rewrite_map.txt

我想创建一个 RewriteRule,它只允许来自所述 RewriteMap 左侧的值位于此位置;

RewriteRule ^/section/downloads/(${legacy})/(.*)$ /blah.php?subsection=${legacy:%1}&title=$2

我知道我可以在右侧使用 ${legacy},但我可以在左侧使用它吗?如果可以,如何使用?

最佳答案

在映射文件中,左侧是键,右侧是值。当您创建与 map 匹配的规则时,您输入键,它输出值。

将您的 RewriteRule 更改为:

# Put these on one line
RewriteRule ^/section/downloads/([a-zA-Z-]+)/(.*)$
/blah.php?subsection=${legacy:$1}&title=$2

第一个分组捕获传入 URL 中的字符串。替换中的 $1 将其应用于指定的映射。要设置默认值,请将 ${legacy:$1} 更改为 ${legacy:$1|Unknown}

最后,如果您只希望规则对映射文件中的值起作用,请添加 RewriteCond:

RewriteCond ${legacy:$1|Unknown} !Unknown
# Put these on one line
RewriteRule ^/section/downloads/([a-zA-Z-]+)/(.*)$
/blah.php?subsection=${legacy:$1}&title=$2

条件表示如果 map 不返回默认值(未知),则运行下一个规则。否则,跳过该规则并继续。

Apache RewriteMap

关于Apache RewriteRule 与 RewriteMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1909438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com