什么是伪静态规则

Posted ZhangJiQun.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是伪静态规则相关的知识,希望对你有一定的参考价值。

目录

什么是伪静态规则

Apache 伪静态配置

https://www.cnblogs.com/xcsn/p/4678280.html

1、域名配置

2、apache URL伪静态配置(thinkephp为例)

3、IIS配置伪静态(thinkPHP为例)

4、nginx下的配置


什么是伪静态规则

就是动态如何去映射成静态的,一般都是按照正则表达式按照一定的规则写成的。

我们知道如果采用开源程序或自己的程序搭建网站的话,都需要调用数据库的内容,因为这样节约资料而且可以实现多功能的展示。如果需要调用数据,那么由于调用数据库的时候有着复杂的规则和需要完成一定的“行为”,所以这个过程被称之为动态的,目前几乎所有的网站都是动态的网站。

静态网站或纯静态的,是这样一类的网页,也就是被称之为死页面,不会调用数据库,页面的内容不能完成各类交互行为,也不能通过程序改变,如果想修改内容的话必须通过FTP修改完成。

伪静态是介于两者之间的一种处理方式。因为动态是现实的需求,而动态又对搜索的抓取不利(因为会产生大量不同URL对应一个页面),所以在技术上采用了一种方法就是把动态URL按照正则关系进行映射,映射成类似静态的地址,因此被称之伪静态。(伪静态实质还是动态的。)

就是动态如何去映射成静态的,一般都是按照正则表达式按照一定的规则写成的。

把动态URL映射什么样的静态URL,按照什么样的规律去执行被称之为伪静态规则。

Apache 伪静态配置

1、mod_rewrite 简介和配置 
Rewirte主要的功能就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等 

2、mod_rewrite 规则的使用 

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www.php100.com [NC] 
RewriteRule ^/(.*) http://www.php100.com/ [L]
-------- 
RewriteEngine on 
RewriteRule ^/test([0-9]*).html$ /test.php?id=$1 
RewriteRule ^/new([0-9]*)/$ /new.php?id=$1 [R]
 
3、mod_rewrite 规则修正符 

1) R 强制外部重定向
2) F 禁用URL,返回403HTTP状态码。
3) G 强制URL为GONE,返回410HTTP状态码。
4) P 强制使用代理转发。
5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。
6) N 重新从第一条规则开始运行重写过程。
7) C 与下一条规则关联8) T=MIME-type(force MIME type) 强制MIME类型
9) NS  只用于不是内部子请求
10) NC 不区分大小写
11) QSA 追加请求字符串
12) NE 不在输出转义特殊字符   \\%3d$1  等价于 =$1

https://www.cnblogs.com/xcsn/p/4678280.html

1、域名配置

E:\\projectAll\\wamp\\bin\\apache\\apache2.2.22\\conf\\extra\\httpd-vhosts.conf 

<VirtualHost *:80>

#项目根目录

        DocumentRoot "E:\\projectAll\\wamp\\www\\fx"

        //域名

        ServerName www.fx.com

//错误日志按照日期生成日志文件

          #ErrorLog "|bin/rotatelogs.exe -l E:/wamp/log/error/mos%Y_%m_%d_error.log 86400"

          #CustomLog "|bin/rotatelogs.exe -l E:/wamp/log/access/mos%Y_%m_%d_access.log 86400" common

        <Directory "E:\\projectAll\\wamp\\www\\fx">   

            #是否允许Rewrite

            AllowOverride all

            #如果没有默认页面的话,是否显示列表

            #Options Indexes FollowSymLinks

            Options FollowSymLinks INCLUDES IncludesNOEXEC

            #设置访问权限

            Order allow,deny

            Allow from all

            DirectoryIndex index.php 

            #php SSI

            AddOutputFilter Includes .php

            #ErrorDocument 404 /errorhtml/error.html

            #ErrorDocument 403 /errorhtml/error.html

       </Directory>

</VirtualHost>

2、apache URL伪静态配置(thinkephp为例)

A)http.conf配置文件中加载mod_rewrite.so模块

B)AllowOverride None将None改为All

C)把下面内容保存为.htaccess文件放到应用入口文件的同级目录下

  <IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

</IfModule>

D)将thinkPHP中config文件里,配置URL访问模式
'URL_MODEL'=>  2,// URL访问模式,可选参数0、1、2、3,代表以下四种模式:// 0 (普通模式); 1 (PATHINFO 模式); 2 (REWRITE  模式); 3 (兼容模式)  默认为PATHINFO 模式
E)设置访问路径的后缀名'URL_HTML_SUFFIX'=>'html',//默认后缀名
F)设置完成,访问如下:
配置前访问路径:
http://serverName/index.php/模块/控制器/操作/[参数名/参数值...]
配置后访问路径:
http://serverName/模块/控制器/操作/[参数名/参数值...]


3、IIS配置伪静态(thinkPHP为例)


在url重写模块中,导入.htaccess文件规则即可,重启网站!!!

4、nginx下的配置

在nginx.conf server模块添加:

location / { 
   if (!-e $request_filename) {
  rewrite  ^(.*)$  /index.php?s=$1  last;
    break;
    }
}
重启nginx

以上是关于什么是伪静态规则的主要内容,如果未能解决你的问题,请参考以下文章

Nginx伪静态规则怎么设置

在Windows主机下安装的WordPress,设置成伪静态后网页中的图片无法显示,请问这是怎么回事?

什么是伪静态?网站伪静态有什么作用?

什么是伪静态?三种实现PHP伪静态的方法介绍

帝国CMS伪静态问题.

什么是伪静态,url 重写是截取传入web 请求并自动将请求重定向到其他 url