IfDefine和RewriteBase不能很好地协同工作

时间:2018-12-10 19:25:52

标签: apache .htaccess mod-rewrite ifdefine

当我使用此代码时,它可以正常工作:

<IfDefine ${ServerBase}>
    RewriteBase ${ServerBase}
</IfDefine>

但是当我添加它时,它总是使用RewriteBase \,这不是我想要的。

<IfDefine !${ServerBase}>
    RewriteBase /
</IfDefine>

条件已经不同。定义ServerBase时之一,而未定义ServerBase时之一。如何在RewriteBase中使用IfDefine else模式?

1 个答案:

答案 0 :(得分:0)

IfDefine检查是否定义了参数。它不会检查它的值。

您需要将其用作:

<IfDefine ServerBase>
    RewriteBase ${ServerBase}
</IfDefine>

<IfDefine !ServerBase>
    RewriteBase /
</IfDefine>

请注意使用ServerBase而不是${ServerBase}

Check official Apache doc of IfDefine