多个域链接到相同的管理文件

时间:2014-07-08 16:27:35

标签: php apache virtualhost

请原谅我,如果这是基本的......我是配置方面的新手。

我已经构建了一个我想要重复使用的Web应用程序,但是使用不同的域名提供较小的功能,使一些基本用户更容易,而且我很难找到最佳方法这个。

我试图避免复制“管理”和#34;后端,因为它将是相同的,只是一个菜单没有显示所有相同的功能(我将处理使用PHP显示的菜单项和基于$ _SERVER [' SERVER_NAME']。但我需要两个不同的域名有不同的网页,所以我可以展示两个不同的Web应用程序。我不知道如何在apache中配置它,或者即使这是一个很好的方法。我知道如何创建这两个独立的域名都有自己的文件夹结构,但我不知道如何让它们使用相同的管理员后端。

这就是我所拥有的。

/data/servers/www.website1.com/web
/data/servers/www.website2.com/web

我为每个域设置了虚拟主机,并且文档根目录指向" web"每个不同网站的文件夹。

在" web"文件夹我有以下结构 ./web/administrator

当用户访问" www.website1.com"他们需要提供特定于本网站的网页。当用户访问" www.website2.com"他们需要提供特定于#2网站的网页。但是,每个网站都会有一个"登录"链接指向" Login.php"驻留在"管理员"内的页面夹。这就是让我感到困惑的原因。登录后,我希望应用程序使用" ./ www.website1.com/web/administrator"下的相同网络文件,这样我就可以更轻松地管理维护。在应用程序内部,我将根据用户所在的站点显示用户可用的菜单选项。我的希望是我可以使用"管理工具"我已经开发了,无需分叉代码并维护2个独立的代码库,我希望将site1.com的结构留在原地,因为它已经有用户,我害怕搞乱他们了。

这可能吗?有人可以帮我弄清楚我需要做些什么来实现这个目标吗?

以下是我目前如何为website1.com设置虚拟主机:

<VirtualHost 123.33.432.123:80>

#  General setup for the virtual host
DocumentRoot "/data/servers/www.website1.com/web"
ServerName www.website1.com
ServerAlias *.website1.com
ServerAlias website1.com
ServerAdmin webmaster@website1.com
CustomLog "|/usr/local/sbin/cronolog /data/servers/www.website1.com/logs/access_log.%Y%m%d" "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\""

DirectoryIndex index.html index.php index.phtml index.htm index.php3 property-management-software.php

 <Directory "/data/servers/www.website1.com/web/">

    AddType application/x-httpd-php .php .html .htm

    Options none
    AllowOverride All

    Order Allow,Deny
    Allow from all
 </Directory>

</VirtualHost>

我在想我会为website2.com添加另一个虚拟主机:

<VirtualHost 123.33.432.124:80>

#  General setup for the virtual host
DocumentRoot "/data/servers/www.website2.com/web"
ServerName www.website2.net
ServerAlias *.website2.net
ServerAlias website2.net
ServerAdmin webmaster@website2.net
CustomLog "|/usr/local/sbin/cronolog /data/servers/www.website2.net/logs/access_log.%Y%m%d" "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\""

DirectoryIndex index.html index.php index.phtml index.htm index.php3 property-management-software.php

 <Directory "/data/servers/www.website2.net/web/">

    AddType application/x-httpd-php .php .html .htm

    Options none
    AllowOverride All

    Order Allow,Deny
    Allow from all
 </Directory>
</VirtualHost>

1 个答案:

答案 0 :(得分:1)

您可以使用Alias directive将网址映射到特定文件/文件夹位置:

Alias /administrator /data/servers/www.website1.com/web/administrator

因此,您要为其他域制作第二个vhost,然后添加此Alias,以便www.website1.com/administrator/www.website2.net/administrator/网址指向文件系统中的同一文件夹。

编辑:您可能还需要包含<Directory>指令才能访问别名目录:

<Directory /data/servers/www.website1.com/web/administrator>
   AddType application/x-httpd-php .php .html .htm
   Options none
   AllowOverride All
   Order allow,deny
   Allow from all
</Directory>