1.检测Apache是否支持mod_rewrite
通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到“Loaded Modules”,其中列出了所有
apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。
如果没有开启“mod_rewrite”,则打开目录 您的apache安装目录“/apache/conf/” 下的 httpd.conf 文件,通过Ctrl+F查找到“LoadModule rewrite_module”,将前面的”#”号删除即可。
如果没有查找到,则到“LoadModule” 区域,在最后一行加入“LoadModule rewrite_module modules/mod_rewrite.so”(必选独占一行),然后重启apache服务器即可。
#启用我们的rewrite模块
LoadModule rewrite_module modules/mod_rewrite.so
2.在httpd.conf中配置虚拟主机
# Virtual hosts 启用虚拟主机
Include conf/extra/httpd-vhosts.conf
3.httpd_vhosts.conf文件中,配置相应的选项.详细讲解
<VirtualHost *:80>
DocumentRoot "C:/myenv2/apache/htdocs/static2"
ServerName www.hsp.com
<Directory "C:/myenv2/apache/htdocs/static2">
#403错误提示,可以阻止人访问.
#Allow from All
#如果文件目录在apache目录外面,注释掉optinos 则,不能列表.
#options +Indexes
#不让列出列表配置
#options None
#设置欢迎页面
#DirectoryIndex aa.html
#下面这个表示可以去读取 .htaccess文件,也可以直接在虚拟主机中配置.
#Allowoverride All
RewriteEngine On
RewriteRule news-id(\d+).html$ searchNews.php?id=$1
#如果匹配不到,可以指定一个错误页
errorDocument 404 /404.php
#这里可以设置多个重写的规则
#RewriteRule news-id.html$ error.php
</Directory>
</VirtualHost>
4、vhost文件中配置
测试一下虚拟主机是否配置ok
如果我们的虚拟主机,没有指定访问的权限,则以上级目录的权限为标准,如果指定了,则以自己的配置为准
我们来看看如何配置我们的rewrite 这个规则, 特别说明该规则实际上就是一个正则表达式, 这个表达式可以写 httpd-vhost.conf 也可以写在 .htaccess 文件.
最后的配置结果如下:
<VirtualHost *:80>
DocumentRoot "C:/myenv2/apache/htdocs/static2"
ServerName www.hsp.com
#Directory这个 段,主要用处指定,该目录的访问权限
<Directory "C:/myenv2/apache/htdocs/static2">
#如果你不想让别人访问你的网站Deny from 211.11.89 或者 Deny from all
Allow from all
#不列出该网站的文件列表 Options None|+indexes
Options +indexes
#设置网站默认的首页面 http://www.hsp.com
DirectoryIndex abc.html
#配置统一的 404页面
errordocument 404 /errro.html
RewriteEngine On
RewriteRule news-id(\d+)\.html$ showNews.php?id=$1
</Directory>
</VirtualHost>
实现伪静态的第二种方式
在文件夹下,直接通过写 .htaccess 文件来指定重新规范
步骤 a. 首先我们在 配置文件中添加
<IfModule rewrite_module>
RewriteEngine On
#rewrite 伪静态的规范可以有多个,他是依次匹配. if else if
RewriteRule news-id(\d+)\.html$ showNews.php?id=$1
</IfModule>
实际应用: 说 ,我的网站有两个文件,放入图片. 一个文件夹下图片是公开的,而另一文件夹图片是私有的,不可以直接访问,怎么处理?
说: 处理的方法是在每个文件夹下 创建一个文件 .htaccess , 可以这里指定哪些ip可以访问我们的资源.!!!->测试没有过.
我们就在 www.hsp.com 这个主机下去测试
伪静态的优缺点分析:
优点: 1. SEO 2. 防止注入 3. 占用空间小
缺点: 1. 因为没有真正的静态化,因此每次请求是需要查询数据库
原文地址:http://keyue.blog.51cto.com/6559543/1531289