配置虚拟域名简化 URL 路径
Snipaste_2018-08-20_13-36-40.png例如我们要定位到 Test.php 中的 hello 方法,我们需要输入以下域名:
http://localhost/zerg/public/index.php/sample/test/hello
(php 域名默认忽略大小写,所以可以写为 test 或 Test 都可以)
这个 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
文件,在最后一行写入:
<VirtualHost *:80>
DocumentRoot "D:/xampp/htdocs/zerg/public"
ServerName z.cn
</VirtualHost>
( DocumentRoot 以自己的目录为准,指向zerg下的public目录 )
改完这里之后,还要改一个地方,这里是让 apache 认出 z.cn ,我们还要让我们的浏览器也能认出 z.cn。
打开 c:\Windows\system32\drivers\etc
下面的hosts
文件。
最后一行输入:
127.0.0.1 z.cn
接下来我们就可以通过 z.cn/sample/test/hello
打开之前讲的了
但是这里有一个潜藏问题:
当输入 localhost 时,会打开 zerg/public/index.php
文件,如果有多个项目时,这样做是不妥的。因为主配置文件httpd.conf
中定义了 DocumentRoot 为 htdocs 文件夹,即输入 localhost 应该定位到 htdocs 文件夹下。
所以需要在httpd-vhosts.conf
中再加入几行,让 localhost 也是我们的虚拟主机。
<VirtualHost *:80>
DocumentRoot "D:/xampp/htdocs"
ServerName localhost
</VirtualHost
大功告成。
网友评论