在一个网站上使用2个域名

问题描述

| 我有专用的服务器(Apache,PHP,MySQL) 有一个主域(我们将其称为www.domain1.com)实际上像所有其他常规Web托管帐户一样保存所有文件。另一个域(称为domain2.com)需要转发给它,但要进行屏蔽。 因此domain2.com/filename.php、domain2.com/filename.php/432/r23-gjfdla-fdjslaf/都需要显示domain1.com内容的相应内容,但浏览器仍应显示domain2.com而不是domain1.com,并且还必须可由$ _SERVER [\'HTTP_HOST \']检测到,因此我的服务器知道用于联系该网站的域。 这是因为我有2位合伙人,所以他们希望每个访问者保留他们输入的用于独立演示的URL,但使内容成为单方面的而不必立即更新两个站点。     

解决方法

        
<VirtualHost *:80>
  DocumentRoot /www/example1
  ServerName www.domain1.com
  ServerAlias www.domain2.com
</VirtualHost>
    ,        您需要的是虚拟主机功能-两个虚拟主机指向一个位置。 当然,页面的代码应具有足够的灵活性以支持这一点-例如,内部URL(如果是绝对的(带有“ 1”或“ 2”部分),也应反映所做的更改。但是您可能已经知道了。     ,        对于同一家公司经营的几个小型网站(一家公司,两家酒店,每个都有自己的网站),我做的事情非常相似。两者都在共享主机上,但是您应该能够使用VirtualHosts完全相同-只需定义两个VirtualHosts,每个VirtualHosts都有一个单独的域名,但是每个都指向文件系统上完全相同的文档根目录:
<VirtualHost *:80>
    ServerName site1.com
    DocumentRoot /srv/www/public_html
</VirtualHost>

<VirtualHost *:80>
    ServerName site2.com
    DocumentRoot /srv/www/public_html
</VirtualHost>
我在
public_html
目录中有
index.php
。这将检查“ 6”,以确定正在使用的域名。然后,它设置一些带有适当目录位置的常量,以及在访问数据库时使用的站点标志。 我有三个静态内容目录。一个是用于两个域的共享内容,另外两个是特定于站点的,包括徽标之类的内容。 其余的PHP脚本保存在文档根目录之外的单独脚本目录中。对于绝对URL或其他特定于站点的信息,脚本可以在必要时使用
index.php
中定义的常量。
/srv/www/
|
|--public_html
|  |
|  |--site1
|  |  |
|  |  |--css
|  |  |--images
|  |
|  |--site2
|  |  |
|  |  |--css
|  |  |--images
|  |
|  |--shared
|     |
|     |--css
|     |--images
|
|--scripts
如果需要两个单独的文档根目录,只需创建两个单独的
index.php
文件,每个文件一个。然后他们可以调用相同的通用代码库(在我的情况下,为
/srv/www/scripts/
)。像这样:
/srv/www/
|
|--site1
|  |
|  |--public_html
|     |
|     |--css
|     |--images
|   
|--site2
|  |
|  |--public_html
|     |
|     |--css
|     |--images
|
|--scripts
接着:
<VirtualHost *:80>
    ServerName site1.com
    DocumentRoot /srv/www/site1/public_html
</VirtualHost>

<VirtualHost *:80>
    ServerName site2.com
    DocumentRoot /srv/www/site2/public_html
</VirtualHost>
    ,        只需在
domain2.com
上编辑DNS以指向
domain1.com
的相同名称服务器记录。只要您网站上使用的文件未硬编码到特定域,它将自动使用屏蔽。     ,        当您说“常规网络托管帐户”时,我假设是共享主机。如果是这样,您必须尝试使用​​.htaccess方法,而不是使用您甚至无法访问的虚拟主机功能: 关于此问题已经存在一个问题:.htaccess将一个域重定向到另一个包含特定查询字符串的域 希望能有所帮助。 :-)     ,        如果您的apache服务器有ѭ15可用,则可以使用它将请求传递给服务器(而非客户端)到其他域。 然后,您可以通过使用
P
标志在
mod_rewrite
RewriteRule
内使用它。 好处是您可以按
.htaccess
进行控制:
RewriteRule (.*)\\.(jpg|gif|png) http://images.example.com$1.$2 [P]
简单的
P
/
proxy
标志示例。 您可以将.htaccess放在domain2的文档根目录中,然后将所有请求代理到domain1:
RwriteRule ^(.*)$ http://domain1$1 [P]
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...