我可以使用mod_alias的“Redirect”来使用Apachevariables,而不是使用mod_rewrite吗?

Apache HTTP服务器的mod_alias提供了Redirect指令,这对于简单的redirect非常mod_alias ,如下所示:

 # Redirect login to https Redirect permanent /login https://www.example.org/login 

虽然许多pipe理员使用mod_rewrite进行redirect,但在不使用mod_rewrite的Apache文档中,通常build议mod_alias优先于mod_rewrite 。 我想更多地使用mod_alias

我可以使用Redirect与Apachevariables ,如ServerName ? 例如,要强制通过HTTPS提供某些内容,我想要做这样的事情:

 Redirect permanent /login https://%{SERVER_NAME}/login Redirect permanent /special-project-1 https://%{SERVER_NAME}/special-project-1 Redirect permanent /special-project-2 https://%{SERVER_NAME}/special-project-2 

这些都不起作用,并且在响应中打印了string%{SERVER_NAME}

 host% curl http://www.example.org/login ... 302 Found The document has moved <a href="https://%{SERVER_NAME}/login">here</a>. 

mod_alias指令允许Apachevariables吗? variables是否可以使用不同的语法?

我相信类似的问题在这里回答: https : //serverfault.com/a/415796/337307

@shanemadden写道:

你不能。 redirect能够处理简单的redirect,在那里你发送客户端到一个单一的,特定的名称,但没有能力做复杂的replace(抛开%{HTTP_HOST}是mod_rewrite特定的事实)。

只要坚持mod_rewrite。 mod_alias不能做你所需要的。