Php 基于域名的apache服务文件

Php 基于域名的apache服务文件,php,apache,.htaccess,server,httpd.conf,Php,Apache,.htaccess,Server,Httpd.conf,比如说,我有3个域名 域名1.com 域名2.com 域名3.com 所有@records当前都转到我的服务器,解析为root/index.php 目前,我使用index.php中的头重定向将每个域重定向到不同的子文件夹。因此,每个url看起来都像 http://domain1.com/new_root1/index.php http://domain2.com/new_root2/index.php http://domain3.com/new_root3/index.php 不太漂亮。。但它

比如说,我有3个域名

域名1.com
域名2.com
域名3.com

所有@records当前都转到我的服务器,解析为
root/index.php

目前,我使用index.php中的头重定向将每个域重定向到不同的子文件夹。因此,每个url看起来都像

http://domain1.com/new_root1/index.php

http://domain2.com/new_root2/index.php

http://domain3.com/new_root3/index.php


不太漂亮。。但它是有效的

我正在尝试将服务器配置为使用
httpd.conf
重定向。我想要的是域1和域2解析:
http://domain[*].com/index.php
在本地ip上
192.168.0.101:80

和域3解析:
http://domain3.com/index.php
在本地ip上
192.168.0.100:1979


有大量的文档、教程等,但似乎没有什么适合这一点。。 我已经看过了。首选注释是使用
httpd.conf
。已搜索Apache文档。
所有尝试均失败。

我在哪里看?提前发送

使用基于基本名称的vhost配置,所有域都将使用端口80并按预期工作。您可以将httpd.conf设置为加载特定文件夹中的所有单个.conf文件,然后将单个.conf文件添加到该文件夹中,每个文件包含1个vhost定义

在apache2.conf的底部,我添加了:

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

# Include all my projects vhost conf files:
Include /vagrant/vhosts/*.conf
在我指定用于加载项目vhost conf文件的文件夹中,我添加了一组.conf文件,如下所示:

<VirtualHost *:80>

ServerName www.demo.vm
ServerAlias demo.vm

DocumentRoot /vagrant/htdocs/demo.vm/public

<Directory /vagrant/htdocs/demo.vm/public>
    Require all granted
    Options Indexes FollowSymLinks
</Directory>

SetEnv APPLICATION_ENV "development"

</VirtualHost>

服务器名www.demo.vm
ServerAlias demo.vm
DocumentRoot/vagrant/htdocs/demo.vm/public
要求所有授权
选项索引跟随符号链接
SetEnv应用程序_ENV“开发”

如果这是本地服务器,则必须编辑操作系统主机文件,将自定义域指向本地主机。

您应该在Apache设置中配置虚拟主机。@Raptor更正。这就是我正在尝试的。尝试了几种配置,所有域仍解析为/root/。还有从另一台机器上服务domain3的问题,基于它的名字,这就成功了,做了一些调整。我不确定SetEnv APPLICATION\u ENV“development”是什么意思,所以我第一次尝试时省略了它。开箱即用。SetEnv将使$\u SERVER['APPLICATION\u ENV']在php代码中可用。您可以让代码在本地主机服务器上运行时以一种方式运行,在实时服务器上运行时以另一种方式运行(例如,在本地运行时,在站点页脚下方显示一组调试信息),这两种方式都得到了很好的解释。在您的时间内使用TYVM:)