您的位置:首页 > 其它

页面静态化【伪静态】

2014-11-11 13:49 162 查看
1:先提出一个问题:

假设我的域名为:www.servername.com,能否实现www.servername.com/aaa/bbb.html实际上是访问www.servername.com/ccc/ddd.php?

问题分析:

首先,www.servername.com实际上已经确定了ip和端口号,如:127.0.0.1:80,如此来说,假设在本地,我们有一个webserver已经在监听80端口,那么也就是说,上述的URL,www.servername.com/aaa/bbb.html,能够把请求发送给我们本机的webserver。

然后,本次请求,请求webserver下的/aaa/bbb.html。我们要求,实际做返回/ccc/ddd.html的内容,这个选择文件的工作,当然是我们的webserver来做的。

如此,上述问题,实际上,就是:如何让webserver例如,Apache,能够按照一定的规则,将接收到的请求重写???

2:伪静态是什么:

【个人理解】伪静态就是,一个形如:www.servername.com/aaa/bbb.html这样的请求,我们让www.servername.com/ccc/ddd.php来做业务处理。这样,我们就实现了一个html文件来做php文件的“功能”。如此,就是伪静态。

3:我们要做什么:

将www.servername.com/aaa/news-sports-id100.html这样的请求,由www.servername.com/ccc/news.php?type=sports&id=100来处理。

4:伪静态实现(本地实现):

4.1:配置域名和IP的对应关系:

打开C:\Windows\System32\drivers\etc\hosts文件,加入127.0.0.1 www.localhost.com。重启Apache。

在浏览器键入,www.localhost.com如果,能列出www下的文件目录,说明正确。

4.2:开启Apache的rewrite模块,并启用httpd-vhost.conf配置。

打开D:\wamp\Apache24\conf\httpd.conf。LoadModule rewrite_module modules/mod_rewrite.so,Include conf/extra/httpd-vhosts.conf去掉这两行前面的#号。重启Apache。

这时,浏览器键入www.localhost.com,会说你没有权限。

4.3:配置虚拟主机



DocumentRoot 你指定的文件夹

ServerName 自定义域名

<Directory> #配置节点

Allow from all #允许所有人访问该文件目录

deny from all #禁止所有人访问该文件目录

errorDocument404 #可以配置404界面

errorDocument403 #可以配置403界面

Options indexes #可以显示目录结构

Options none #不显示目录结构

#重点来了,开启Rewrite引擎

RewriteEngine On

#开启RewriteRule

RewriteRule (这里可以使用正则表达式定义自己的规则)

</Directory>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: