什么是伪静态规则
Posted ZhangJiQun.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是伪静态规则相关的知识,希望对你有一定的参考价值。
目录
https://www.cnblogs.com/xcsn/p/4678280.html
2、apache URL伪静态配置(thinkephp为例)
什么是伪静态规则
就是动态如何去映射成静态的,一般都是按照正则表达式按照一定的规则写成的。
我们知道如果采用开源程序或自己的程序搭建网站的话,都需要调用数据库的内容,因为这样节约资料而且可以实现多功能的展示。如果需要调用数据,那么由于调用数据库的时候有着复杂的规则和需要完成一定的“行为”,所以这个过程被称之为动态的,目前几乎所有的网站都是动态的网站。
静态网站或纯静态的,是这样一类的网页,也就是被称之为死页面,不会调用数据库,页面的内容不能完成各类交互行为,也不能通过程序改变,如果想修改内容的话必须通过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
以上是关于什么是伪静态规则的主要内容,如果未能解决你的问题,请参考以下文章