php伪静态重写规则,php伪静态规则写法

本文目录一览:

求织梦手机站伪静态规则及URL 重写规则

最近很多朋友来问织梦58的站点的伪静态是怎么写的,今天就拿出来和大家分享一下子。呵呵

dedecms(织梦)完美实现伪静态的方法

dedecms(织梦)完美实现伪静态的方法

测试版本:Dedecms V5.6版本

测试平台:Windows 7

测试环境:IIS 7.5

成功。其他条件下大同小异。

需要的条件:

1、服务器必须支持URL重写。

2、后台开启伪静态。

3、栏目设置使用动态。

4、添加文档时选择使用动态浏览。

5、修改php文件include/channelunit.func.php。

6、修改include/arc.listview.class.php。

7、编写rewrite规则。

操作步骤:

1、加载Rewrite模块(过程略)。

2、dedecms后台-系统-系统基本参数-核心设置-是否使用伪静态,选“是”。

3、把栏目和文档设置成为动态浏览。可以手动,用sql语句更快。

dedecms后台-SQL命令行工具,执行以下语句

将所有文档设置为“仅动态浏览”:update dede_archives set ismake=-1

将所有栏目设置为“使用动态页”:update dede_arctype set isdefault=-1

改成1就是静态。动态转换为静态后需要重新生成HTML。

添加栏目和文章默认为动态的一劳永逸的方法:

4、修改php文件include/channelunit.func.php

查找

return $GLOBALS[“cfg_plus_dir”].”/view-“.$aid.’-1.html’;

修改为

return “/view-“.$aid.’-1.html’;

查找

return $GLOBALS[‘cfg_phpurl’].”/view.php?aid=$aid”;

修改为

return “/view.php?aid=$aid”;

其实页可以不修改,就是URL地址会长一点。这个是文章页的。

查找

$reurl = $GLOBALS[‘cfg_phpurl’].”/list.php?tid=”.$typeid;

修改为

$reurl = “/list-“.$typeid.”.html”;

这个必须修改,是栏目页的。

其实不修改也可以,但是URL地址会长一点。这个是文章的。

5、打开include/arc.listview.class.php

找到

$plist = str_replace(‘.php?tid=’, ‘-‘, $plist);

(大约在第964行)

在其前面面添加一行

$plist = str_replace(‘plus/list’, ‘list’, $plist);

这个是列表页分页rewrite的url格式的。

默认是

现在是

6、 设置重写规则,在httpd.ini里面写上:

[ISAPI_Rewrite]

# 缓存3600秒 = 1 小时(hour)

CacheClockRate 3600

RepeatLimit 32

#dedecms Rewrite规则

RewriteRule ^(.*)/index\.html$1/index\.php

RewriteRule ^(.*)/list-([0-9]+)\.html$1/plus/list\.php\?tid=$2

RewriteRule^(.*)/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$1/plus/list\.php\?tid=$2TotalResult=$3PageNo=$4

RewriteRule^(.*)/view-([0-9]+)-([0-9]+)\.html $1/plus/view\.php\?arcID=$2pageno=$3

7、如果不使用动态首页

把rewrite规则中的

RewriteRule ^(.*)/index\.html $1/index\.php

去掉,或改为

RewriteRule ^(.*)/index\.html $1/index\.html

否则打开时会陷入死循环。

说明:

1、

RewriteRule ^view-([0-9]+)-([0-9]+)\.html$/plus/view.php?aid=$1pageno=$2

此为文章分页重写命令。

2、如果view替换成自己设置的其他词,则需要把include/arc.archives.class.php文件中的view同时替换掉。

3、重写后的URL如下:

文章页:

列表页:

如果需要改成如下格式:

文章页:

列表页:

include/channelunit.func.php中

return $GLOBALS[“cfg_plus_dir”].”/view-“.$aid.’-1.html’;

改为 return “/abc/view-“.$aid.’-1.html’;

return $GLOBALS[‘cfg_phpurl’].”/view.php?aid=$aid”;

改为 return “/abc/view.php?aid=$aid”;

$reurl = $GLOBALS[‘cfg_phpurl’].”/list.php?tid=”.$typeid;

改为 $reurl = “/abc/list-“.$typeid.”.html”;

重写规则改为:

RewriteRule ^(.*)/index\.html $1/index\.php

RewriteRule^(.*)/abc/list-([0-9]+)\.html $1/plus/list\.php\?tid=$2

RewriteRule^(.*)/abc/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$1/plus/list\.php\?tid=$2TotalResult=$3PageNo=$4

RewriteRule^(.*)/abc/view-([0-9]+)-([0-9]+)\.html$1/plus/view\.php\?arcID=$2pageno=$3

4、伪静态可能会出现多个url都是指向相同页面,如果看重SEO效果,则可用robots.txt屏蔽多余url。

什么叫php伪静态?

mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面。下面我详细说说它的使用方法

1.检测Apache是否支持mod_rewrite

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

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

如果没有查找到,则到“LoadModule” 区域,在最后一行加入“LoadModule rewrite_module ,modules/mod_rewrite.so”(必选独占一行),然后重启apache服务器即可。

2.让apache服务器支持.htaccess

如何让自己的本地APACHE服务器支持”.htaccess”呢?其实只要简单修改一下apache的httpd.conf设置就可以让 APACHE支 持.htaccess了。打开httpd.conf文件(在那里? APACHE目录的CONF目录里面),

用文本编辑器打开后,查找

Options FollowSymLinks

AllowOverride None

改为

Options FollowSymLinks

AllowOverride All

就可以了。

3.建立.htaccess 文件

有1种最简单的方法建立.htaccess文件:

用记事本 打开,点击文件–另存为,在文件名窗口输入”.htaccess”,注意是整个绿色部分,

也就是包含英文引号,然后点击保存就行了。

4.rewrite规则学习

我们新建一个.htaccess文件之后,就在里面写入以下内容:

RewriteEngine on #rewriteengine为重写引擎开关on为开启off为关闭

RewriteRule ([0-9]{1,})$index.php?id=$1

我讲解一下RewriteRule:RewriteRule是重写规则,支持正则表达式的,上面的([0-9]{1,})是指由数

字组成的,$是结束标志,说明是以数字结束!

好吧,现在我们可以实现伪静态页面了,写下一下的规则:

RewriteEngine on

RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$index.php?action=$1id=$2

([a-zA-Z]{1,})-([0-9]{1,}).html$是规则,index.php?action=$1id=$2是要替换的格式,$1代表第

一个括号匹配的值,$2代表第二个,如此类推!!

我们写一个处理的PHP脚本:

index.php

PHP代码

echo ‘你的Action是:’ . $_GET[‘action’];

echo ‘

’;

echo ‘你的ID是:’ . $_GET[‘id’];

?

好了,我们现在在浏览器中输入:

localhost/page-18.html

输出的是:

你的Action是:page

你的ID是:18

php伪静态、url重写

你的想法是完全可行的,我举个例子告诉你

你可以先看看这个文章,不懂的可以交流

apache一般都是在目录下创建.htaccess来实现伪静态,IIS不是这样的,这跟PHP本身没有关系,这是http服务器与客户端浏览器之间的约定

比如说

RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$

index.php?action=$1id=$2

意思就是说当你访问类似 a_1.html里的时候 apache自动跳转到 index.php?action=$1id=$2的地方,其中$1就是左边重写规则的第一个变量 ([a-zA-Z]{1,}),$2就是([0-9]{1,})的第二个变量

php如何实现网页静态

一、静态化的优点:

1有利于搜索引擎收录网站页面的信息:搜索引擎更喜欢静态的,更变于抓取,搜索引擎SEO排名会更容易提高。

2静态网页化网页稳定

3可以提高网页加载速度

4减轻服务器负担,浏览器不需要频发调用数据库。

5数据库出错不会影响正常访问

二、伪静态

PHP伪静态:是利用Apache mod_rewite实现url重写的方法

改写访问地址,能够通过URL的PATHINFO模式来改动它。让它看上去更像一个静态页面。从而有更大的几率被搜索引擎抓取和收录,仅是对搜索引擎比较友好,伪静态化

三、纯静态化

纯静态化,就是生成HTML文件的方式,我们须要开启PHP自带的缓存机制,即ob_start来开启缓存。而且在ob_start之前不能有不论什么输出,否则运行失败,然后我们用ob_get_contents函数来获取缓存中的内容,该函数会返回一个字符串。第三个函数就是ob_end_clean,它用来清空缓存中的内容而且关闭,成功返回True,失败返回False。

?php

if(file_exists(“match.html”) (time()-filemtime(“match.html”))300)

{

//如果存在对应的静态文件,则直接访问

require_once(“match.html”);

}else{

//这里用数组来仿真数据库操作,现实一般都是操作数据库得到对应数据

$student = array(“huangxing”,”chenyuwei”,’xufei’,’zhangjingwen’,’xuepei’);

ob_start();

//载入模板

require_once(“muban.php”);

file_put_contents(“match.html”,ob_get_clean());

require_once(‘match.html’);

}

如何配置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);

原创文章,作者:ZUJCI,如若转载,请注明出处:https://www.506064.com/n/316737.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ZUJCI的头像ZUJCI
上一篇 2025-01-09 12:14
下一篇 2025-01-09 12:14

相关推荐

  • Centos7配置静态ip

    本文将详细阐述如何在Centos7系统中配置静态ip。 一、查看网络接口 在配置静态ip之前,我们首先需要查看系统中的网络接口,以确定我们需要配置的网卡是哪一个。 ifconfig…

    编程 2025-04-29
  • 解析URI编码规则

    URI(统一资源标识符)是用来标识互联网上资源的字符串文本标识符,是访问互联网资源的地址。在将URI传送到服务器或浏览器时,需要进行特定编码处理,这个编码方式就是URI编码规则。 …

    编程 2025-04-28
  • Python编写规则用法介绍

    Python作为一种广泛使用的高级编程语言,其编写规则的规范性对于提高代码可读性、美观度以及方便调试、维护至关重要。本文将从命名规则、注释规则、代码缩进等多个方面进行详细的阐述,希…

    编程 2025-04-28
  • Python缩进规则用法介绍

    本文将从多个方面对Python的缩进规则进行详细的阐述。 一、规则解答 Python中缩进是语法的一部分,它决定了程序的结构和逻辑。Python缩进规则要求同一层级的代码必须保持相…

    编程 2025-04-28
  • Python元组的写法

    Python元组是不可变的序列,也可以看作是一个不可变的列表。元组与列表不同的是,元组的元素不能修改。 一、定义元组 定义元组使用圆括号(),并用逗号分隔元素。以下是一个简单的示例…

    编程 2025-04-27
  • Python中通过对象不能调用类方法和静态方法的解析

    当我们在使用Python编写程序时,可能会遇到通过对象调用类方法和静态方法失败的问题,那么这是为什么呢?接下来,我们将从多个方面对这个问题进行详细解析。 一、类方法和静态方法的定义…

    编程 2025-04-27
  • Apache伪静态配置Java

    本文将会从多个角度阐述如何在Apache中正确伪装Java应用程序,实现URL的静态化,提高网站的SEO优化和性能。以下是相关的配置和代码实例。 一、RewriteEngine的配…

    编程 2025-04-27
  • 删除静态路由

    一、静态路由的定义 路由(Routing)是指在一组互联的计算机网络中,根据一定的算法规则实现两个节点之间选择合适的路径并且传送数据包的过程。简单来说,路由就是在网络中选择一条可达…

    编程 2025-04-25
  • LL(1)语法分析器:从语法规则到语法树

    在编译原理中,语法分析是编译器的一个重要阶段。语法分析器的作用是将代码转换成语法树,以便后续阶段进行处理。LL(1)语法分析器是语法分析器的一种,它采用的是自顶向下的分析方法,可以…

    编程 2025-04-25
  • 静态文件服务器

    一、文件服务器简介 静态文件服务器是一个基于HTTP协议的服务器应用程序,它旨在提供对本地或远程文件系统中的静态内容(包括HTML、CSS、图像、视频和JavaScript文件等)…

    编程 2025-04-24

发表回复

登录后才能评论