一并贴上,来自网络首先,你要拥有一个有泛域名解析的顶级域名,例如: 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。 查看原帖>>这个 URL 路径太长了,而且 index.php 在我们的认知中是一个网页,后面再跟着 sample/test/hello,显得很怪,即语义不明确。
我们可以把这个 URL 看成两部分看。入口文件之前是一部分( localhost/zerg/public/index.php ),之后是另一部分( sample/test/hello )。
后者的简化需要用到 路由 的知识,我们重点介绍一下前者,通过配置虚拟域名进行简化。
我们在开发过程中,可以在本地生成一个虚拟域名来简化入口文件前的一大串。
这是我们的目标:
http://z.cn/sample/test/hello
让 apache 认识 z.cn 的具体操作如下:
找到 xampp 文件夹下的
apache\conf\extra 目录下的 httpd-vhosts.conf 文件,在最后一行写入:
( DocumentRoot 以自己的目录为准,指向zerg下的public目录 )
改完这里之后,还要改一个地方,这里是让 apache 认出 z.cn ,我们还要让我们的浏览器也能认出 z.cn。
打开 c:\Windows\system32\drivers\etc 下面的 hosts 文件。
最后一行输入:
接下来我们就可以通过 z.cn/sample/test/hello 打开之前讲的了
但是这里有一个潜藏问题:
当输入 localhost 时,会打开 zerg/public/index.php 文件,如果有多个项目时,这样做是不妥的。因为主配置文件 httpd.conf 中定义了 DocumentRoot 为 htdocs 文件夹,即输入 localhost 应该定位到 htdocs 文件夹下。
所以需要在 httpd-vhosts.conf 中再加入几行,让 localhost 也是我们的虚拟主机。
大功告成。
评论列表(0条)