Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将链接的根冒充为子目录。htaccess_Php_Html_Regex_.htaccess - Fatal编程技术网

Php 如何将链接的根冒充为子目录。htaccess

Php 如何将链接的根冒充为子目录。htaccess,php,html,regex,.htaccess,Php,Html,Regex,.htaccess,我在服务器上托管了很多网站,它们都位于/var/www/。它们以这些域命名,例如“website.com”将位于/var/www/website.com/ 我需要能够做的事情是编辑这些网站而不影响实时版本 我的想法是使用我的服务器IP作为一种测试版编辑区域。假设123.123.123.123是我的服务器IP。我希望能够简单地将任何实时站点复制到123.123.123.123/beta/区域,并使所有链接仍能正常工作 不幸的是,有些链接类似于“/assets/images/etc…” 是否有办法将

我在服务器上托管了很多网站,它们都位于/var/www/。它们以这些域命名,例如“website.com”将位于/var/www/website.com/

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

我的想法是使用我的服务器IP作为一种测试版编辑区域。假设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/


需要在“测试版”中使用多个网站。

我建议您:

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

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

后一个选项的设置比较复杂,但有很多优点: -您有一个完全独立的HTTP服务器,因此您甚至可以在不破坏生产环境的情况下使用其设置 -在开发/登台和生产中使用完全相同的URL -如果选择ports>1000,您甚至可以作为普通用户而不是root用户运行HTTP服务器,因此您甚至可以在不使用su/sudo的情况下重新启动它。缺点是不能为不同的站点使用不同的用户

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

请注意,您最终可能需要两个以上的环境。开发、分期和生产是很好的选择


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

这听起来很棒!谢谢我可能会尝试设置某种git,尽管我最初想到的方法完全不可能实现吗?如果页面包含类似于
/this
的链接,则无法让浏览器认为它应该要求
/beta/this
,不。但是如果你使用上述任何一种方法,你都会得到同样的实际效果。第一个很容易设置。如果只为您,您甚至可以编辑本地
/etc/hosts
,而不是编辑DNS。