Htaccess 分别用于 Localhost 和 Production

Htaccess separate for Localhost and Production

如何创建一个 Htaccess,它将具有用于 Localhost 和 Production 的特定且单独的代码。我的意思是当我们在本地主机上工作时,它应该是工作本地主机代码,而在生产环境中它应该只加载生产代码。这样我就可以将一个 Htaccess 用于本地和生产,这将节省大量时间。以下是我想要实现的模型。任何人都可以为此提供帮助,我们将不胜感激。因为我花了很多时间在这上面并没有找到任何好的方法。提前致谢!

<Localhost>
---localhost code goes here 
---it should be only work in localhost and not at all in Production
</localhost>

<Production>
---production code goes here 
---it should be only work in Production and not at all in Localhost
</Producton>

.htaccess 中的大部分代码在本地和生产环境中应该是相同的。 (不然怎么测试?)

但是,在服务器之间分隔指令的最干净的方法之一是 Define(需要 Apache 2.4)其中一台服务器(例如开发机器)的服务器配置中的变量:

Define DEVELOPMENT

这可以在服务器配置中的任何地方定义(不是 .htaccess),但对于服务器来说总是被视为 global,无论它是否在内部定义一个 <VirtualHost> 个容器。您不需要指定 value(第二个)参数,因为 <IfDefine> 指令(见下文)不会检查这一点。与往常一样,无论何时更改服务器配置,您都需要重新启动 Apache 以使更改生效。

并在 .htaccess 中引用:

<IfDefine DEVELOPMENT>
    # Local / development directives only
</IfDefine>

<IfDefine !DEVELOPMENT>
    # Live / production directives only
</IfDefine>

! 前缀测试变量 定义。

根据您需要包含的指令类型,您可以使用 <If> 容器并检查请求的主机名之类的内容(例如,staging.example.comwww.example.com 用于实时站点).但是,<If> 容器与 mod_rewrite 的工作方式不同。

参考: