gpt4 book ai didi

apache - mod_alias 与 mod_rewrite 优先级

转载 作者:行者123 更新时间:2023-12-04 03:27:14 25 4
gpt4 key购买 nike

我有一个使用 mod_alias 的 Redirect 指令和 mod_rewrite 的 RewriteRule 的 apache 配置文件。

根据我的理解,mod_alias 按照文件从上到下的顺序工作,而 mod_rewrite 相反,匹配最后一条规则,除非你以 [L] 标志终止。

我的问题是,我的 Redirect 规则位于 RewriteRule 之上,但 RewriteRule 似乎仍在应用,所以我最终将所有人重定向到相同的 url。

我想要实现的是将某些位置重定向到另一个网络服务器,并使用 mod-rewrite 进行包罗万象,因此片段看起来像这样

<VirtualHost *:80>
ServerName example.com
Redirect permanent "/foo/bar/location1/" "https://example2.com/foo/baz/location1"
Redirect permanent "/foo/bar/location2/abc" "https://example2.com/foo/baz/location2/def"

RewriteEngine on
RewriteRule ^.*$ "https://example2.com/catch-all/? [R=301, L]

此外,如果它们在 block 内或 block 外,它们的行为是否不同?

最佳答案

您必须在重写规则之后编写重定向规则,因为它会首先检查它必须遵循的重写规则是什么,然后再检查重定向规则。

<VirtualHost *:80>
ServerName example.com
RewriteEngine on
RewriteRule ^.*$ "https://example2.com/catch-all/? [R=301, L]
Redirect permanent "/foo/bar/location1/" "https://example2.com/foo/baz/location1"
Redirect permanent "/foo/bar/location2/abc" "https://example2.com/foo/baz/location2/def"

关于apache - mod_alias 与 mod_rewrite 优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37813294/

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