gpt4 book ai didi

apache - 我通过 .htaccess 的 RewriteRule 有什么问题吗? (为什么需要RewriteBase?)

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

rewriteengine on
rewriterule ^/a/b$ ^/c$

不工作,但是

rewriteengine on
rewritebase /
rewriterule ^a/b$ ^c$

有效。

最佳答案

可能不是 RewriteBase 使规则起作用,而是前导斜杠。此外,RewriteRule 的第二个参数不是正则表达式。相反,请尝试:

RewriteRule ^/?a/b$ c

当从 .htaccess 应用 RewriteRule 时,前导斜杠将从 URL 中删除,如果包含它,将导致模式失败。通过使用“^/?”启动模式,它将在主配置文件和每个目录的配置文件中工作。

阅读 detailed mod_rewrite documentation详细了解重写引擎的工作原理以及RewriteBase的意义。

编辑:正如 mod_rewrite technical details 中提到的并在 RewriteRule 的文档中进行了描述和 RewriteBase ,在评估每个目录重写规则时,URL 已转换为路径。重写引擎不再有可使用的 URL。相反,它会删除以斜杠结尾的本地目录前缀(保存 .htaccess 文件的目录)。例如,假设访问者请求“/var/www/foo/bar/baz.html”,并且在“/var/www/foo/.htaccess”中设置了重写规则。在每个规则之前,重写引擎将剥离“/var/www/foo/”,留下“bar/baz.html”与重写规则匹配。处理规则后,会在前面添加本地目录前缀(除非替换以“http://”开头)。处理完所有重写规则后,重写基础(如果设置)将替换本地目录前缀;如果不是,则删除文档根目录。然后,重写的 URL 将作为子请求重新注入(inject)。

关于apache - 我通过 .htaccess 的 RewriteRule 有什么问题吗? (为什么需要RewriteBase?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2137492/

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