今晚聊聊Apache配置虚拟主机和Yii框架的URL美化问题,下面开始分享。
我直接上我的虚拟主机配置图,然后对于细节,加上一些文字说明:
DocumentRoot:虚拟主机指向的网站目录
ServerName:虚拟主机的名字,同时需要在hosts文件里面加上一个对应127.0.0.1 login.2mm.cn
Directory:配置一下目录权限,尤其是AllowOverride all,这个在伪静态.htaccess时会用到
虚拟主机配置完成了,接着说美化URL,用过Yii框架的朋友都知道,Yii默认的URL访问是非常繁琐且复杂的,
比如是:http://login.2mm.cn/index.php?r=register/index,很明显,需要改进的地方就是把index.php隐藏,然后就是
把r=换成最熟悉的/即可,下面讲讲具体方法:1. 隐藏index.php,显然会用到伪静态知识,因此需要首先在web根目录
下面新建一个.htaccess文件,内容如下图所示:
这个时候,理论上很顺利的情况下,URL就隐藏了index.php了,然而情况从来都不会这么顺利!!!
一般会有两种错误出现:1. 报404错误,这个时候原因多半是:虚拟目录的AllowOrverride属性的值是none,改成All
即可解决该问题;2. 报Internal Server Error错误(正是我所遇到的!),因为在伪静态的.htaccess中使用了Rewrite
重写模块,因此需要先在Apache的httpd.conf中,开启rewrite模块,下面附上配图:
接着讲怎样r=换成"/",这个就很简单了,因为Yii框架已经内置了这种模式,只需要在web.php配置文件里面,将
enablePrettyUrl属性设置成true即可解决,下面附上解决图:
好了,今晚的分享到此结束,大家一定要亲自去操作,才能够清楚其中的一些猫腻,下次有机会给大家多聊聊伪
静态的知识,这方面应用十分广泛。
大家可以关注我的微信公众号:icode,我会每天推送一篇原创文章,让大家都能有所收获!