.htaccess文件位于prod上并在git中跟踪,不希望使用prod';s.htaccess-on-dev
如果这是重复的,请将其标记为相同。另外,我不确定这是否是一个基于意见的问题。我的谷歌搜索没有返回任何与我的困境相关的信息,我也不确定我应该搜索什么。(,) 我的问题是如何保持git中跟踪的生产.htaccess文件位于prod上并在git中跟踪,不希望使用prod';s.htaccess-on-dev,git,.htaccess,Git,.htaccess,如果这是重复的,请将其标记为相同。另外,我不确定这是否是一个基于意见的问题。我的谷歌搜索没有返回任何与我的困境相关的信息,我也不确定我应该搜索什么。(,) 我的问题是如何保持git中跟踪的生产.htaccess文件不干扰开发环境的web服务器 我的git部署设置的简要说明: 本地机器(开发)->比特桶->生产 生产在共享主机上,所以我不能直接从dev推送到生产,我必须使用Bitbucket作为中介 我的开发环境: 我在本地使用Vagrant作为开发环境,它使用Apache作为其web服务器。va
.htaccess
文件不干扰开发环境的web服务器
我的git部署设置的简要说明:本地机器(开发)->比特桶->生产 生产在共享主机上,所以我不能直接从dev推送到生产,我必须使用Bitbucket作为中介 我的开发环境:
我在本地使用Vagrant作为开发环境,它使用Apache作为其web服务器。vagrantbox设置脚本应用
httpd.conf
文件中的更改来设置VirtualHost
、DocumentRoot
和DirectoryIndex
这在过去对我很有效
在生产中,还使用Apache。我最初没有在git中跟踪.htaccess
,但最近有一个变化(HTTP到HTTPS重定向),使我决定开始跟踪它。我现在遇到的问题是,生产.htaccess
文件被拉到我的dev目录,并影响我的devweb服务器
我的一些想法是:
.htaccess
文件,但这让我觉得很复杂.htaccess
文件,但。。。我预见到这会给我带来麻烦,因为我将在prod/dev上处理分支,很有可能我会把事情搞砸.htaccess
文件,但这似乎会导致以后的灾难还有别的办法吗?或者我应该使用我想到的一个想法吗?分支aproach可能是个好主意,可能是一个没有.htaccess文件的开发分支,或者像master这样有跟踪功能的生产分支。因此,当您准备好生产时,您可以合并到master。另一个答案可能就是您正在寻找的答案,但是,在不更改版本控制的情况下,可能有两个备选方案 如果您的本地开发环境根本不使用
.htaccess
,那么您可以在服务器配置中禁用此功能,那么prod.htaccess
文件是否存在并不重要:
<Directory /path/to/public_html>
# Disable .htaccess files...
AllowOverride none
</Directory>
在.htaccess
中:
<IfDefine DEV>
# Development server directives...
</IfDefine>
<IfDefine !DEV>
# Production server directives...
</IfDefine>
#开发服务器指令。。。
#生产服务器指令。。。
注意
代码>(不是)第二个规则块上的前缀。我遇到了完全相同的问题。。。我目前正在做的是将我的工作dev目录保存在/var/www/site[dev]/下,但我忽略了.htaccess文件以及其他仅用于开发的文件。然后,我在它旁边保留了第二个目录,位于/var/www/site[prod]/,其中包含我希望在生产服务器上使用的所有变体。因此,我从[dev]提交并推送,然后拉回到[prod]并从那里部署。我的意思是,这是可行的,但我觉得像这样的东西应该有一个行业标准,这就是我来这里的原因。但不管怎样,我想如果它起作用,它就会起作用。耸耸肩我注意到OP的问题晚了两分钟-你先回答:)。“分支”(例如“dev”)可能是此类情况的理想选择。为了回答OP的担忧,没有必要让事情变得“一团糟”。在CI/CD环境中,使用分支可能会更干净。我没有想到这一点。我使用它的项目非常小,所以我一直直接提交给master
,只针对我正在完成但尚未准备好生产的功能进行分支。我想我会在本地创建一个development
分支,并删除master
分支。Bitbucket将同时具有开发
和主
,我可以将开发
分支合并到Bitbucket上的主
,然后从生产中提取主
。这听起来正确吗?完全正确。您甚至可能不需要合并。当然,另一种可能是有两个文件:一个用于prod,另一个用于dev。您可以保存这两个文件,但将它们放在单独的目录(/prod/.htaccess,/dev/.htaccess)中,或者给它们单独的名称(.htaccess.prod,.htaccess.dev)。我喜欢这种方法,而不是保留两个分支,但是在git中有两个分支可能是解决这个问题的正确方法。我在git中管理分支和远程主机时遇到问题,我可以看到自己意外地覆盖了dev中的某些内容,这需要大量的工作和文件处理才能修复。是的,我同意,尽管“正确”可能是主观的-YMMV。我经常在.htaccess
中使用一个条件来区分live/development服务器,因为两者之间可能只有一个很小的路径差异,而且通常更容易在同一个文件中一起维护。
<IfDefine DEV>
# Development server directives...
</IfDefine>
<IfDefine !DEV>
# Production server directives...
</IfDefine>