1.检测Apache是否支持mod_rewritephp
经过php提供的phpinfo()函数查看环境配置,经过Ctrl+F查找到“Loaded Modules”,其中列出了全部html
apache2handler已经开启的模块,若是里面包括“mod_rewrite”,则已经支持,再也不须要继续设置。正则表达式
若是没有开启“mod_rewrite”,则打开目录 您的apache安装目录“/apache/conf/” 下的 httpd.conf 文件,经过Ctrl+F查找到“LoadModule rewrite_module”,将前面的”#”号删除便可。数据库
若是没有查找到,则到“LoadModule” 区域,在最后一行加入“LoadModule rewrite_module modules/mod_rewrite.so”(必选独占一行),而后重启apache服务器便可。apache
#启用咱们的rewrite模块服务器
LoadModule rewrite_module modules/mod_rewrite.soide
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>
四、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. 由于没有真正的静态化,所以每次请求是须要查询数据库