ThinkPHP中配置伪静态(URL重写)规则

ThinkPHP中配置伪静态(URL重写)规则
什么是伪静态?简单说就是将动态的url变成静态的url 显示,就叫做伪静态。

“伪”就是假的,不是真的静态url,是通过技术手段实现的。

用户只要开通无忧php虚拟空间就支持url重写功能,无需其它任何设置,我们使用伪静态的好处,就是可以优化网络引擎,提高网站权重。

将网站静态化处理,是网站seo优化非常重要的一个工作。

Thinkphp也可以通过技术手段,实现伪静态处理。

满足thinkphp伪静态(url重写)条件:
1、服务器开启url_rewrite功能,linux空间的php虚拟主机只需要开启apache的mod_rewriet,如果是iis6.0就要安装ISAPI Rewrite模块,apache只要开启Mod_rewrite功能就可以了。

无忧主机是linux系统的空间,开通空间默认支持。

2、Linux空间编辑.htaccess文件,windows空间编辑httpd.ini 文件。

thinkphp如何编写.htaccess文件?
无忧主机()编写的thinkphp伪静态正则表达式.htaccess文件如下:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
请将上面正则表达式,保存为.htaccesss文件,并放到thinkphp 项目入口文件同级目录下。

并且修改数据库配置(config.php)文件使网站支持url重写功能,加入代码:
define(‘URL_REWRITE’,2);。

合集下载

URL重写规则

URL重写规则

URL重写规则开启mod_rewrite开启mod_rewrite模块使⽤URL重写功能,需要安装mod_rewrite模块。

使⽤phpinfo()函数,找到Apache Modules section部分,可以看到当前apache加载模块。

如果没有开启mod_rewrite, 就需要配置mod_rewrite.so的路径:LoadModule rewrite_module modules/mod_rewrite.soApache2内置了mod_rewirte,在配置虚拟主机的配置⽂件VirtualHost部分打开引擎:RewriteEngine on这句之后就可以使⽤重写语法了。

VirtualHost⽂件部分的Directory配置必须是:Options Includes FollowSymLinks #允许使⽤符号链接AllowOverride All #允许⽬录配置⽂件.htaccess。

如果不使⽤是AllowOverride None利⽤mod_rewrite重写URL主要使⽤两个基本的指令RewriteRule和RewriteCond。

⼀个最常⽤的正则就是(.*)。

它含有两个元素:⼀是“点”,表⽰任意字符;⼆是“星”,表⽰以前的全部字符。

所以(.*)会匹配{REQUEST_URI}的所有字符。

Rewrite重写引擎的输⼊串是 {REQUEST_URI},也就是URL中出去域名以及“?”符号后的所有查询字符。

重定向的URL中要提取出“USA/California/San_Diego”,匹配模式正则表达式的原型是:(.*)/(.*)/(.*)以上正则,在{REQUEST_URI}中通过两个“/”的分割存储了三个值,为了解决我们具体问题,我们得加⼀点限制――毕竟,第⼀个和最后⼀个原⼦可以匹配任何字符。

开始,我们可以添加⼀些特殊的字符,⽐如表⽰正则“开始”或者“结束”,“^”字符表⽰正则的开始⽽“”表⽰正则的结束。

url重写(伪静态)IIS配置图解-^特殊П佀命^-博客园

url重写(伪静态)IIS配置图解-^特殊П佀命^-博客园

url重写(伪静态)IIS配置图解-^特殊П佀命^-博客园
url重写(伪静态)IIS配置图解
伪静态是指动态网页通过重写URL的方法实现去掉动态网页的参数
伪静态的作用:
一)、利于搜索引擎的抓取
二)、不变应完变
三)、防止某些黑客恶意攻击
四)、方便访问者使用
通过IIS创建虚拟目录,新建网站放在该目录下面;
IIS配置:
在选中的网站,点击右键->属性选择配置:
把上面两个文本框的值复制走保存在记事本里面点击确定
注意下面几个勾了的地方
把刚才复制的值粘贴在上面,注意添加扩展名.html,去掉检查文件是否存在复选:
点击确定 IIS就配置Ok啦。

apache伪静态重写规则 -回复

apache伪静态重写规则 -回复

apache伪静态重写规则-回复搭建虚拟主机、配置重写规则来实现Apache伪静态重写是非常常见的需求。

Apache是一种常用的Web服务器软件,拥有非常强大的功能和灵活性。

在本文中,我们将一步一步地回答关于Apache伪静态重写规则的问题。

什么是Apache伪静态重写?在了解如何配置Apache伪静态重写规则之前,我们需要先了解什么是Apache伪静态重写。

伪静态重写是指通过重写URL的方式将动态的URL 转换为静态的URL。

在Web开发中,动态URL常常包含一些参数,比如id、页码等等。

而静态URL是指不包含任何参数的URL。

通过将动态URL 转换为静态URL,可以提高网站的搜索引擎优化(SEO)和用户体验。

步骤1:搭建虚拟主机首先,我们需要搭建一个虚拟主机来托管我们的网站。

虚拟主机是指在同一台物理服务器上托管多个网站的能力。

通过虚拟主机,我们可以在同一台服务器上运行多个不同的网站,每个网站都被视为一个独立的实体。

在Apache中,虚拟主机的配置通常存储在`httpd.conf`文件中,或者是一个单独的配置文件,比如`vhost.conf`。

你可以选择将虚拟主机的配置直接写在`httpd.conf`文件中,或者创建一个单独的配置文件,并在`httpd.conf`文件中引用它。

以下是一个简单的虚拟主机配置示例:<VirtualHost *:80>DocumentRoot /var/www/mywebsiteServerNameServerAlias mywebsite</VirtualHost>在上面的示例中,虚拟主机的DocumentRoot是`/var/www/mywebsite`,这是网站文件的存放目录。

ServerName是你的网站域名,这里以`步骤2:启用重写模块在配置伪静态重写规则之前,我们需要先启用Apache的重写模块。

重写模块允许我们通过重写规则来修改URL。

thinkphp教程笔记总结

thinkphp教程笔记总结

thinkphp教程笔记总结1、url的四种访问模式:1)PATHINFO模式(重点)Eg:http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值22)普通模式Eg:http://域名/项目名/入口文件?m=模块名&a=方法名&键1=值1&键2=值2 3)REWRITE模式(重写模式)需要增加配置文件hac,服务器支持。

Eg:http://域名/项目名/模块名/方法名/键1/值1/键2/值24)兼容模式Eg:http://域名/项目名/入口文件?s=模块名/方法名/键1/值1/键2/值22、ThinkPHP输出:1)PHP原生输出方法。

Echo2)通过display方法输出。

想通过分配变量可以使用assign输出3)修改定界符:修改配置项。

避免与JQuery冲突…THPL_L_DELIM?-〉…<{? 修改左定界符…THPL_R_DELIM?-〉…<{? 修改右定界符3、ThinkPHP 的模型使用1)需要在方法中通过new Model (表名)的形式操作数据库$m=new Model(…User?);$arr=$m->sselect();需要通过配置项来配置数据库(数据表名第一个字母大写)还有一种简单使用模型的方法:$m=M(…User?); //等效为new Model$arr=$m->sselect();使用模型的实力可以对数据进行操作,操作的工作一般就是对数据库进行增删改查。

增c create $m->add()删d delete $m->delete()改u update $m->save()查r read $m->select()4、ThinkPHP 3.1.2 CURD特性ThinkPHP 3 读取数据1)对数据的读取Read$m=new Model('User');$m=M('User');a.select $m->select();//获取所有数据以数组形式返回b.find $m->find($id);//获取单条数据c.getField(字段名)//获取一个具体的字段值$arr=$m->where('id=2')->getField('username'); //ThinkPHP 的连贯操作ThinkPHP 3 创建数据对数据的添加Create$m=new Model('User');$m=M('User');$m->字段名=值$m->add();返回值是新增的id号代码示例:public function add(){$m=new Model('User');$m->username=$_POST['username'];$m->sex=$_POST['sex'];$newId=$m->add();if($newId>0){$this->success("Add new user successfully",index);}else{$this->error("Add new user failed",index); }}ThinkPHP 3 删除数据$m=M('User');$m->delete(2); //删除id为2的数据$m->where('id=2')->delete(); //与上面效果相同也是删除id为2的数据返回值是受影响行数ThinkPHP 3 更新数据$m=M('User');$data['id']=1;$data['username']='ztz2';$m->save($data);返回值是受影响行5、ThinkPHP 3.1.2 查询方式find只能查询一天记录,select可以查询多条记录一、普通查询方式字符串$arr=$m->where("sex=0 and username='gege'")->find();数组$data['sex']=0;$data['username']='gege';$arr=$m->where($data)->find();注意这种方式默认是and的关系如果使用or关系需要添加数组值$data['sex']=0; $data['username']='gege';$data['_logic']='or';二、表达式查询方式$data['id']=array('lt',6);$arr=$m->where($data)->select();EQ 等于NEQ 不等于GT 大于EGT 大于等于LT 小于ELT 小于等于示例代码:public function show(){$m=new Model('User');$data['id']=array("LT",25);$arr=$m->where($data)->select();var_dump($arr);$this->display(); }LIKE 模糊查询$data['username']=array('like','%ge'); //查询username以ge 结尾的user$data['username']=array('like','%ge%'); //查询username包含ge的user$arr=$m->where($data)->select();NOTLIKE //注意 not 和like中间不能有空格$data['username']=array('notlike','%ge%'); //查询username 不包含ge的user $arr=$m->where($data)->select();注意如果一个字段要匹配多个通配符$data['username']=array('like',array('%ge%','%2%','%五%'),'and'); //如果没有第三个值默认关系是or关系$arr=$m->where($data)->select();BETWEEN$data['id']=array('between',array(5,7));$arr=$m->where($data)->select();//SELECT * FROM `tp_user` WHERE ( (`id` BETWEEN 5 AND 7 ) )$data['id']=array('not between',array(5,7));//注意 not 和between中间一定要有空格$arr=$m->where($data)->select();IN$data['id']=array('in',array(4,6,7));$arr=$m->where($data)->select();//SELECT * FROM `tp_user` WHERE ( `id` IN (4,6,7) )$data['id']=array('not in',array(4,6,7)); not和in之间一定要有空格$arr=$m->where($data)->select();//SELECT * FROM `tp_user` WHERE ( `id` NOT IN (4,6,7) )常用连贯操作a)where 帮助我们设置查询条件b) order 对结果进行排序$arr=$m->order('id desc')->select();$arr=$m->order(array('id'=>'desc','sex'=>'asc'))->select();c) limit 限制结果limit(2,5)limit('2,5')limit(10)//limit(0,10) d) fieldd) 设置查询字段field('username as name,id')field(array('username'=>'name','id')field('id',true) //获取除了id以外的所有字段e) tablef) groupg) Havingh) 补充i. alias 用于给当前数据表定义别名字符串ii. page 用于查询分页内部会转换成limit 字符串和数字iii. join* 用于对查询的join支持字符串和数组iv. union* 用于对查询的union支持字符串、数组和对象v. distinct 用于查询的distinct支持布尔值vi. lock 用于数据库的锁机制布尔值vii. cache 用于查询缓存支持多个参数以后在缓存部分再详细描述viii. relation 用于关联查询需要关联模型扩展支持字符串ix. validate 用于数据自动验证数组x. auto 用于数据自动完成数组xi. filter 用于数据过滤字符串xii. scope* 用于命名范围字符串、数组模板的使用a) 规则模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[index].html .tpl 更换模板文件的后缀名修改配置文件:'TMPL_TEMPLATE_SUFFIX'=>'.html',//更改模板文件后缀名b) 修改模板文件目录层次'TMPL_FILE_DEPR'=>'_',//修改模板文件目录层次c) 模板主题'DEFAULT_THEME'=>'your',//设置默认模板主题需要在TPL下面新建一个your文件夹作为模板主题文件如何动态修改模板主题1、在后台准备一个功能修改config.php文件中的默认模板项2、通过url传递t=主题参数可以修改不同的模板(需三方同时使用)'DEFAULT_THEME'=>'your', //设置默认模板主题'TMPL_DETECT_THEME'=>true, //自动侦测模板主题'THEME_LIST'=>'your,my', //支持的模板主题列表模板的输出a)display1.display中没有参数$this->display();2.可以带参数$this->display(本模块文件夹下的其他模板文件);$this->display('index2');$this->display(其他文件夹下的模板文件);$this->display('Public:error'); //注意仅仅需要在Tpl下有Public 文件夹以及其中的error.html即可不需要一定有Public模块$this->display(其他主题下的文件夹下的模板文件);//需要开启主题支持$this->display('my:Index:index');$this->display(一个url路径);$this->display('./Public/error.html');$this->display('./Public/error.html','utf-8','text/xml'); //参数二为制定编码,参数三为模版的输出类型。

如何通过RewritePath方法重写Url地址实现伪静态

如何通过RewritePath方法重写Url地址实现伪静态

如何通过RewritePath方法重写Url地址实现伪静态各位在浏览本站时如果细心一些,就会发现本站的Url地址全都是目录式的,也就是像我的电脑中文件夹式的目录结构,地址中不包含文件名。

以前在网上也看到有人问到这种目录式Url的实现方法,本站是通过重写Url地址来实现的,本章就说说小站的实现方法,当然,实现该功能的方法多种多样,不仅仅限于小站以下要说的方法。

1,首先新建一个类库项目,将自动生成的Class1文件删掉,自己创建一个HttpModule.cs类。

2,修改代码,使HttpModule.cs类继承自IHttpModule接口,继承该接口必须实现void Dispose();void Init(HttpApplication context);两个方法,Dispose方法我们可不用管它,我们仅需要在Init方法中实现HttpApplication 的BeginRequest事件即可,代码如下:public void Init(HttpApplication context){context.BeginRequest += new EventHandler(context_BeginRequest);}context_BeginRequest事件如下:void context_BeginRequest(object sender, EventArgs e){HttpApplication application = (HttpApplication)sender;HttpContext context = application.Context;string path = context.Request.Path;//以上这句代码是实现客户端请求的虚拟路径,如本站中的某链接的地址为/ab/CatalogID1,那么当浏览器者点击该链接的时候,context.Request.Path的值就是/ab/CatalogID1了。

php配置伪静态详解,有例子。

php配置伪静态详解,有例子。

1.检测Apache是否支持mod_rewrite通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到“Loaded Modules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。

如果没有开启“mod_rewrite”,则打开目录您的apache安装目录“/apache/conf/” 下的htt pd.conf 文件,通过Ctrl+F查找到“LoadModule rewrite_module”,将前面的”#”号删除即可。

2.让apache服务器支持.htaccess如何让自己的本地APACHE服务器支持”.htaccess”呢?其实只要简单修改一下apache的httpd.conf设置就可以让APACHE支持.htaccess了。

打开httpd.conf文件(在那里? APACH E目录的CONF目录里面),用文本编辑器打开后,查找Options FollowSymLinksAllowOverride None改为Options FollowSymLinksAllowOverride All就可以了。

.3.建立.htaccess 文件如果是在windows平台下,刚开始还真不知道怎么建立”.htaccess”文件,因为这个文件实际上没有文件名,仅仅只有扩展名,通过普通方式是无法建立这个文件的,别着急,马上告诉你三种方法:三种方法都是先建立一个htaccess.txt的文本文件(当然,这个文本文件的名字你可以随便取),然后有三种方式给这个文件重命名:(1)用记事本打开,点击文件–另存为,在文件名窗口输入”.htaccess”,注意是整个绿色部分,也就是包含英文引号,然后点击保存就行了。

(2)进入cmd命令窗口,通过cd切换当刚建立htaccess.txt文件的文件夹,然后输入命令:rename htaccess.txt .htaccess ,然后点击键盘Enter键即可。

伪静态 rewrite规则 -回复

伪静态rewrite规则-回复什么是伪静态?伪静态(Pseudo-Static)是一种技术,用于在URL中隐藏动态生成的内容,使其看起来像是静态页面。

这种技术可以提高网站的性能和SEO(搜索引擎优化),同时保留动态生成内容的优点。

伪静态的原理在传统的动态网站中,网页内容是根据用户请求的参数动态生成的。

每次访问都会执行一次数据库查询或其他动态操作,这样会增加服务器的负载,并且页面响应时间较长。

而伪静态则将动态生成的页面内容缓存起来,当下次相同的请求到达时,直接返回缓存的静态页面,避免了重复的动态生成过程。

伪静态的优势1. 提高网站性能:伪静态技术可以显著减少数据库查询和动态操作的次数,从而加快网页加载速度,提高用户体验。

2. 有利于SEO:搜索引擎更喜欢静态页面,因为它们更易于索引和排名。

使用伪静态技术可以使网站的URL更有意义,包含关键词,有助于提高搜索引擎的排名。

3. 方便改版和维护:将动态生成的内容存储为静态页面,可以方便地进行页面的改版和维护,而不用担心影响到网站的正常运行和数据的一致性。

伪静态的实现方法实现伪静态有多种方法,其中最常见的是使用Apache服务器的rewrite 规则。

下面是一种基本的伪静态rewrite规则的示例:RewriteEngine On # 打开rewrite引擎RewriteCond {REQUEST_FILENAME} !-f # 如果请求的文件不存在RewriteCond {REQUEST_FILENAME} !-d # 如果请求的目录不存在RewriteRule ^(.*) index.php?url=1 [QSA,L] # 将所有的请求重定向到index.php,并将请求的URL作为参数传递上述规则的含义是,如果请求的文件或目录在服务器上不存在,就将所有的请求重定向到index.php页面,并将请求的URL作为参数传递。

这样,index.php可以根据传递的参数动态生成相应的页面内容,并返回给用户。

phpstudy伪静态设置[汇总]

phpstudy配置虚拟主机+伪静态phpstudy是一款集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer的本地调试环境。

1、安装
安装很简单,就不赘述了;
2、配置虚拟主机
左键单击托盘中的小图标,在弹出的菜单栏中选择“站点管理”,会跳出一对话框。

根据对话框中的提示,先将上方的配置示例复制到下方的输入框中,然后修改相应的内容然后单击“保存”即可。

3、重启Apache,设置完成。

当然要通过域名访问还需要将域名绑定到服务器IP,不过既然是本地测试,那么只需要修改下本地的Hosts就行了。

例如,刚才配置虚拟主机时的域名为:,那么用记事本打开C:\Windows\Sy stem32\drivers\etc\hosts,然后换一行,输入127.0.0.1 ,记得IP地址和域名之间有一个空格。

(PS:用这种方法,就算你用当作你的测试域名也可以)不过既然是本地环境,别人可是不能通过域名访问到你的网站的,只有你自己本地可
以访问。

4、此时,你应该可以通过浏览器就可以访问你的网站了。

不过要支持伪静态,还需要做一些配置。

仍然是左键单击Phpstudy的托盘图标,选择“配置文件”→“httpd-conf”,记事本会自动打开该文件。

接着Ctrl+F打开查找对话框,输入 AllowOverride ,找到后你会发现默认后面是none,将它改成All,应该不只一个,修改两个就可以了,其中一个是你的站点目录,例如我的是D:\wwwroot
5、再次重启Apache,现在在你的站点下加入.htacess Rewrite规则文件,就能成功伪静态了。

三种实现PHP伪静态页面的方法

三种实现PHP伪静态页⾯的⽅法PHP伪静态写法--其⼀伪静态⼜名:URL重写主要是为了SEO⽽⽣的。

(SEO是什么?这个不⽤问我吧。

呵呵~搞⽹络的不懂SEO那就~~~~)⽅法⼀:⽐如这个⽹页/soft.php/1,100,8630.html其实处理的脚本是soft.php 参数为1,100,8630相当于soft.php?a=1&b=1=100&c=8630 只不过这样的URL太难记。

搜索引擎也不喜欢。

真静态只是完全⽣成了HTML。

客户端访问的时候直接输出。

不⽤脚本解释。

在流量⾮常⼤的时候(⽐如每天有上百万的访问量的时候)会起到很好的效果。

也就是说服务器端实实在在的存在这个HTML页⾯。

当然在你⽹站的流量没有那么⼤的时候。

URL重写是最好的⽅法(个⼈观点,⼤流量的时候可以考虑负载均衡了。

同样没有关系)附URL重写的⽅法有很多种,APACHE,IISREWRITE。

甚⾄PHP脚本都可以直接处理。

⽐如上例中就是PHP脚本直接处理(该⽅法好处是⼤流量的时候直接减轻WEB伺服器的压⼒。

PS:同样也是个⼈观点:================================================下⾯以程序为例讲⼀下PHP伪静态的程序实现⽅法,其实这⽅法我之前已经有在其它论坛社区发过程序为例:/soft.php/1,100,8630.htmlCODE://利⽤server变量取得PATH_INFO信息该例中为 /1,100,8630.html 也就是执⾏脚本名后⾯的部分if(@$path_info =$_SERVER["PATH_INFO"]){//正则匹配⼀下参数if(preg_match("/\/(\d+),(\d+),(\d+)\.html/si",$path_info,$arr_path)){$gid =intval($arr_path[1]); //取得值 1$sid =intval($arr_path[2]); //取得值100$softid =intval($arr_path[3]); //取得值8630}else die("Path:Error!");//相当于soft.php?gid=1&sid=100&softid=8630//就是这么简单了。

伪静态规则代码

伪静态规则代码一、什么是伪静态规则代码在网站开发中,伪静态是指通过对URL进行重写,使其看起来像是静态页面的一种技术。

伪静态规则代码是指用来实现伪静态的一段代码或配置。

传统动态网页的URL通常包含参数,例如:。

而使用伪静态后,URL会变得更加友好和美观,例如:。

通过使用伪静态规则代码,可以提升网站的用户体验和搜索引擎优化效果。

二、为什么使用伪静态规则代码1. 改善用户体验动态网址通常包含大量参数和特殊字符,不易记忆和分享。

而采用伪静态后,URL会变得简洁、有意义且易于理解。

这有助于提高用户对网站内容的识别度和理解度。

2. 提升搜索引擎优化效果搜索引擎更喜欢处理静态页面而非动态页面。

通过使用伪静态规则代码,可以将动态生成的页面转换为看起来像是静态页面的形式呈现给搜索引擎爬虫。

这有助于提高网站在搜索引擎结果页面中的排名。

3. 方便URL的管理和维护动态网址通常包含大量参数,不方便管理和维护。

而使用伪静态后,URL会变得简洁明了,易于管理和维护。

三、如何编写伪静态规则代码1. 选择合适的伪静态规则代码方式在编写伪静态规则代码之前,需要先选择合适的方式来实现伪静态。

常见的方式包括:•Apache服务器下使用.htaccess文件•Nginx服务器下使用rewrite模块•IIS服务器下使用URL Rewrite模块根据所使用的服务器类型和具体需求,选择相应的方式进行配置。

2. 编写伪静态规则代码示例(以Apache服务器为例)a. 创建.htaccess文件首先,在网站根目录下创建一个名为.htaccess的文件。

b. 启用.htaccess确保Apache服务器已开启.htaccess功能。

在主配置文件或虚拟主机配置中添加以下内容:<Directory "/path/to/your/website">AllowOverride All</Directory>c. 编写伪静态规则代码在.htaccess文件中添加以下示例代码:RewriteEngine OnRewriteBase /# 将 /article.php?id=1 重写为 /article/1.htmlRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^article/([0-9]+)\.html$ article.php?id=$1 [L]在上述示例代码中,RewriteEngine On表示启用URL重写功能,RewriteBase /表示基础重写路径。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档