如何欺骗链接的根目录成为子目录?的.htaccess

时间:2016-08-24 09:10:38

标签: php html regex .htaccess

我在我的服务器上托管了不少网站,它们都位于/ var / www /中。它们以域名命名,例如#34; website.com"将位于/var/www/website.com /

我需要做的是编辑这些网站而不影响实时版本。

我的想法是将我的服务器IP用作一种beta编辑区域。让我们说123.123.123.123是我的服务器IP。我希望能够简单地将任何现场网站复制到123.123.123.123/beta/区域,并使所有链接仍然正常工作。

不幸的是,有些链接是这样的" / assets / images / etc ...",

有没有办法设置" /"成为" beta"内的网站目录 - 例如123.123.123.123/beta/website.com/而不是它在真实的" /" - 123.123.123.123 /

需要在" beta部分"。

中使用多个网站

1 个答案:

答案 0 :(得分:1)

我推荐你:

,而不是使用子目录
  • 使用其他域名(例如,dev.example.com用于www.example.com的开发或登台环境)。然后,为每个域配置一个虚拟主机,指向该站点的副本。

  • 将当前的Web服务器(Apache等)移动到其他端口。在常规http / https端口上的同一个盒子,另一个端口和反向代理(例如pound)上添加第二个Web服务器,并使用cookie检测发送给dev或生产环境。然后,您需要一个非常小的脚本来设置或删除所述cookie以从一个环境切换到另一个环境。

后一种选择设置起来有点复杂,但有很多优点: - 您有一个完全独立的HTTP服务器,因此您甚至可以使用其设置而不会破坏生产中的任何内容 - 您在开发/登台和制作中使用完全相同的URL - 如果你选择端口> 1000,您甚至可以以普通用户而不是root用户身份运行HTTP服务器,因此您甚至可以在不使用su / sudo的情况下重新启动它。缺点是您不能将不同的用户用于不同的站点。

在这两种情况下,不要忘记复制数据库,并正确地将每个环境指向正确的数据库。您可能希望这是自动的,以避免在开发/暂存和生产之间更改配置文件。

请注意,您最终可能需要超过2个环境。发展,分期和生产是很好的候选人。

当然,您需要使用源代码管理(例如git)来跟踪更改并将其反映在生产中。