`
yezi
  • 浏览: 279034 次
  • 来自: 北京
社区版块
存档分类
最新评论

找到了一个apache解析域名到目录的方法

阅读更多

apache如何将一个域名自动定位到目录,这个问题困扰了很久,试了很多方法,不是很理想。今天终于知道了一个办法,效果还在测试中

以下是摘录的内容:

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:

RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1


其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
然后,在这个所在路径的目录下创建一个文件: vhost.map
内容为:

www.domain.com /usr/local/www/data-dist/domain
bbs.domain.com /usr/local/www/data-dist/bbs
anyname.domain.com /usr/local/www/data-dist/anyname

以上部分都是:” 域名+空格+绝对路径” 的形式。

最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
domain , bbs , anyname 等等,理论上可以无限。

这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。

第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
第二步:打配置文件尾部加上
RewriteEngine on
RewriteMap lowercase int:tolower
#定义映像文件
RewriteMap vhost txt:/apache/vhost/vhost.map
#处理变名
RewriteCond %{REQUEST_URI} !^/icons/
RewriteCond %{REQUEST_URI} !^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
这里做基于文件的重新映射
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1
RewriteCond %{REQUEST_URI} ^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/cgi-bin/$1

注意:vhost.map文件是域名和空间映像的文件,格式如下: 
www.abc.com /vhostusr/www.abc.com
www.xyz.com /vhostuser/www.xyz.com
www.cccbbbb.net /vhostuser/www.ccbbbb.net
.
.
.
.
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
==============================================
方法二、


rewriteengine on
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
其他配置文件

接着在DNS中开设一个泛解析到对应的IP地址。
就可以实现下面的方案。

域名:domain.com
绝对路径:/home/domain.com/
www.domain.com 自动解析到 /home/domain.com/www/
abc.domain.com 自动解析到 /home/domain.com/abc/
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
直接建立子域名名称的文件夹即可使用。不需重启apache

分享到:
评论

相关推荐

    apache的解析域名到目录的方法

    总结起来,Apache解析域名到目录主要通过配置`httpd.conf`,启用`mod_rewrite`,创建并编辑`vhost.map`文件来实现。这种方法提供了灵活的域名到目录映射,便于管理和扩展网站结构。在实际操作中,也可以考虑用PHP...

    Linux apache环境多域名配置

    - 使用`find / -name httpd.conf`命令找到Apache的主配置文件httpd.conf。 - 或者直接导航到Apache的安装目录,通常位于`/etc/httpd/`或`/usr/local/apache2/`。 #### 三、多域名配置步骤 **1. 修改httpd.conf** ...

    最简单快速的Apache二级域名实现方法介绍

    这里,`RewriteMap`定义了两个映射,`lowercase`用于将服务器名转换为小写,`vhost`则是一个文本映射,指向`vhost.map`文件,这个文件将子域名与实际的文档根目录关联起来。 创建`vhost.map`文件,路径应与`...

    apache 二级域名解析实现方法

    ### Apache二级域名解析实现方法详解 #### 一、前言 在互联网应用中,二级域名是一种常见的需求场景,尤其对于大型网站来说,合理利用二级域名能够更好地组织网站内容,提高用户体验,同时也便于SEO优化。Apache...

    iis 和apache 怎么同时用域名访问的

    1. **在DNS中设置子域名**:为Apache服务设置一个子域名(例如`sub.example.com`),并将该子域名解析到服务器IP地址。 2. **配置Apache的虚拟主机**:在Apache中创建一个新的虚拟主机条目,指定该虚拟主机的域名...

    Apache24加压版 需要ab的可以在bin目录下获得

    3. **虚拟主机**:通过虚拟主机功能,一个Apache服务器可以同时托管多个独立的网站,每个网站有自己的域名和配置。在`httpd-vhosts.conf`文件中定义虚拟主机设置。 4. **日志文件**:Apache会记录访问和错误信息到...

    Apache 2配置域名绑定的方法详解

    在本篇文章中,我们将深入探讨如何在Apache 2上配置域名绑定,以便多个域名可以指向同一个服务器的不同目录或应用。 首先,我们需要理解域名绑定的基本概念。域名绑定允许我们通过特定的域名访问服务器上的不同站点...

    apache设置域名绑定 以及绑定不起作用的排查.docx

    如果需要绑定多个域名到同一个IP,可以使用`ServerAlias`指令。例如: ``` *:80> ServerName blog.lrenwang.com ServerAlias lrenwang.com abc.lrenwang.com DocumentRoot "/path/to/lrenwang.com/content" ...

    apache免安装版本

    1. 启动Apache:在Apache根目录下找到`bin`目录,运行`httpd.exe`或`apache_start.bat`(取决于版本)启动服务。 2. 停止与重启:同样在`bin`目录,使用`httpd.exe -k stop`停止服务,`httpd.exe -k restart`实现...

    php+apache+mysql x64

    版本号2.2.24意味着这是Apache 2.2系列的一个稳定版,OpenSSL-1.0.1e则提供了安全的加密支持,用于HTTPS等安全通信。 MySQL-5.5.29-winx64 是MySQL数据库管理系统的一个64位版本。MySQL是一个关系型数据库管理系统...

    httpd基于端口的域名解析

    - 在默认情况下,Apache HTTP Server监听80端口,但可以通过配置让其监听多个端口,每个端口对应一个虚拟主机,进而实现基于端口的域名解析。 - 当用户访问某个域名时,HTTP请求会携带该域名和所使用的端口号。...

    Apache2.2中文手册

    基于名称的虚拟主机通过解析不同的域名来服务于不同的站点,而基于IP的虚拟主机则是为每个站点分配一个单独的IP地址。 四、安全与权限 Apache的安全性非常重要,可以通过设置`Allow`, `Deny`和`Order`指令来控制...

    解析在apache里面给php写虚拟目录的详细方法

    - 可以添加多个域名映射,每个域名映射一行。 ### 完成与测试 1. **保存所有更改**。 2. **重启Apache服务**:确保新配置生效。 3. **测试虚拟主机**:在浏览器中输入新配置的虚拟主机名(如`http://localhostes`...

    linux中apache安装与配置

    Apache还支持虚拟主机,这意味着在一个服务器上可以运行多个网站。创建一个新的虚拟主机配置文件,如`/etc/apache2/sites-available/example.com.conf`,然后启用它: ```bash sudo nano /etc/apache2/sites-...

    Apache配置详解(最好的APACHE配置教程)

    它的配置主要通过一个名为`httpd.conf`的主配置文件进行,这个文件包含了服务器运行所需的所有指令和参数。下面我们将深入探讨Apache配置的一些核心概念和常用指令。 **1. **`ServerRoot`**:** `ServerRoot`指令...

    apache2.2安装包

    4. 虚拟主机:Apache支持多个虚拟主机,通过配置文件中的`NameVirtualHost`和`<VirtualHost>`指令,可以实现不同域名指向不同目录。 三、Apache 2.2与PHP集成 1. 安装PHP:首先需要安装PHP,确保版本与Apache兼容。...

    整合Apache+PHP+MySQL

    在Apache配置文件中,我们需要让Apache解析PHP文件,这通常涉及到修改`DirectoryIndex`以优先显示`index.php`,并指定网站根目录。此外,还需要确保Apache可以访问到PHP解释器和正确的配置文件。 对于PHP配置,主要...

    tomcat配置虚拟目录,外加域名解析

    虚拟目录允许我们在一个Tomcat实例上托管多个独立的Web应用,而域名解析则是将易于记忆的域名映射到IP地址的过程。 **1. Tomcat配置虚拟目录** 在Tomcat中,虚拟目录被称为“Context”,它允许你为不同的Web应用...

    Linux下apache与php的安装与整合.docx

    在Linux环境中,Apache和PHP的集成是...对于FQDN解析问题,检查网络设置,确保DNS配置正确,或者在Apache配置中使用IP地址代替域名。通过以上步骤和注意事项,你应该能够成功地在Linux环境下安装和整合Apache与PHP。

Global site tag (gtag.js) - Google Analytics