伪静态详解笔记

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. 由于没有真正的静态化,所以每次请求是须要查询数据库

相关文章
相关标签/搜索