请原谅我,如果这是基本的......我是配置方面的新手。
我已经构建了一个我想要重复使用的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>
答案 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>