很实用的重写规则,怎样以用户名做二级域名简化网址!

很实用的重写规则,怎样以用户名做二级域名简化网址!,第1张

一并贴上,来自网络首先,你要拥有一个有泛域名解析的顶级域名,例如: 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 也是我们的虚拟主机。

大功告成。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/464195.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-04
下一篇2023-06-04

发表评论

登录后才能评论

评论列表(0条)

    保存