【问题标题】:IfDefine and RewriteBase doesn't work well togetherIfDefine 和 RewriteBase 不能很好地协同工作
【发布时间】:2018-12-10 19:25:51
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: apache .htaccess mod-rewrite ifdefine


    【解决方案1】:

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

    您需要将其用作:

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

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

    Check official Apache doc of IfDefine

    【讨论】:

    • 你如何测试它?你能在你的问题中显示完整的代码吗?
    • 嗯,我收到此错误[Tue Dec 11 16:09:05.587936 2018] [core:alert] [pid 19988:tid 1984] [client ::1:55876] D:/htdocs/myproject/.htaccess: RewriteBase: argument is not a valid URL。这有帮助吗?
    • 我提供了在我的本地 Apache 上运行良好的完整代码
    猜你喜欢
    • 2016-12-08
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 2018-01-18
    • 1970-01-01
    • 2018-12-25
    • 2012-01-07
    相关资源
    最近更新 更多