ThinkPHP怎么实现伪静态,第1张

1、实现伪静态方法:

 1)隐藏入口文件:http://docthinkphpcn/manual/hidden_indexhtml

 2)结合使用URL路由:http://docthinkphpcn/manual/url_routehtml

 3)配置伪静态后缀名:HTML_FILE_SUFFIX => '';

 上面三个都用上,基本都OK了!当然,还可以通过服务器重写URL

2、设置让地址栏不能访问文件夹:

 1)每个文件夹添加一个indexhtml空文件(因服务器默认的首页而异同),假如默认首页是 indexhtml 那就 添加indexhtml

 2)也可以通过服务器配置目录访问权限

dede57伪静态设置方法。

dede57伪静态设置七步法:

第一步、后台-系统参数-核心设置-是否使用伪静态:选择“是”;

注:你的网站空间是否支持伪静态,你可以与空间的IDC商联系一下,如果是自己的服务器,那就更好办了,自己动手,丰衣足食。一般来说,空间都是支持伪静

态的。Apache服务器伪静态相对简单,直接在htaccess文件中加入相应伪静态规则即可;而IIS服务器伪静态的实现,则需要加载

Rewrite组件,然后配置httpdini文件。

第二步、如果你的网站已经存在生成的静态栏目或文章HTML,那么只需在后台-系统-SQL命令行工具中执行如下语句:

将所有文档设置为“仅动态浏览”:

update dede_archives set ismake=-1

将所有栏目设置为“使用动态页”:

update dede_arctype set isdefault=-1

第三步、列表页、文章页伪静态修改

打开/include/helpers/channelunithelperphp。

(1)查找:

//动态文章

if($cfg_rewrite == 'Y')

{

return $GLOBALS["cfg_plus_dir"]"/view-"$aid'-1html';

}

替换为

//动态文章

if($cfg_rewrite == 'Y')

{

return "/DedeCMS/DedeCMS57-"$aid'-1html';

}

意思是:将默认的/plus/view-1-1html文章链接格式改为/DedeCMS/DedeCMS57-1-1html。

(2) 查找:

//动态

$reurl = $GLOBALS['cfg_phpurl']"/listphptid="$typeid;

替换为

//动态

$reurl = "/category/list-"$typeid"html";

意思是:将默认的频道或是列表页URL/plus//listphptid=1变更为/dedecms/list-1html形式。

第四步、列表分页伪静态修改

打开/include/arclistviewclassphp

查找:

$plist = str_replace('phptid=', '-', $plist);

替换为

$plist = str_replace('plus/listphptid=', ‘DedeCMS/DedeCMS57-', $plist);

将默认的plus/listphptid=替换成RMB/list-;

意思是:将默认的列表分页链接格式plus/listphptid=x$x$xl修改为DedeCMS/DedeCMS57-x-x-xhtml。

第五步、文章分页伪静态

打开/include/arcarchivesclassphp,找到获取动态的分页列表GetPagebreakDM()函数末尾处:

查找:

$PageList = str_replace("plus/viewphptid=","DedeCMS/DedeCMS57-",$PageList);

替换为

$plist = str_replace('plus/viewphptid=', ’DedeCMS/DedeCMS57-', $plist);

将默认的plus/viewphptid=替换成RMB/huilv-;

意思是:将默认的文章分页链接格式plus/viewphptid=x$x$xl修改为DedeCMS/DedeCMS57-x-x-xhtml

第六步、TAG标签伪静态

DedeCms默认的TAG标签URL,形如/tagsphp/dedecms模板 /,是不是觉得有个问号不怎么爽,我们改成/tags/dedecms模板 /,是不是好看多了。

下面我们来改一下,打开/include/taglib/taglibphp:

查找:

$row['link'] = $cfg_cmsurl"/tagsphp/"urlencode($row['keyword'])"/";

替换为

$row['link'] = $cfg_cmsurl"/tags/"urlencode($row['keyword'])"/";

这样就修改好了,上传你到你的网站,切记:要记得将原网站备份哦!!

第七步、httpdini伪静态规则:

[ISAPI_Rewrite]

# 3600 = 1 hour

CacheClockRate 3600

RepeatLimit 32

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

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

RewriteRule ^()/RMB/huilv-([0-9]+)-([0-9]+)\html $1/plus/view\php\arcID=$2&pageno=$3 [I]

RewriteRule ^()/()_()_([0-9]+)\html $1/huilv/from=$2&to=$3&num=$4 [I]

RewriteRule ^()/tags\html $1/tags\php [I]

RewriteRule ^()/tags/()(:(\)) $1/tags\php\\/$2 [I]

RewriteRule ^()/tags/()\/(:(\)) $1/tags\php\\/$2\/ [I]

RewriteRule ^()/tags/()\/([0-9])(:(\)) $1/tags\php\\/$2\/$3 [I]

RewriteRule ^()/tags/()\/([0-9])\/(:(\)) $1/tags\php\\/$2\/$3\/ [I]

将上面代码保存为:httpdini 上传到网站的根目录。

如无特特殊需求建议采用官方默认的生成静态的页面方式浏览。

所谓伪静态就是通过一定的技术手段,将原先一条不存在的URL地址映射到已存在的文件上,其目的是实现动态网页内容的静态化,提高搜索引擎收录率。

方法/步骤:

1、IIS 70以上服务器

微软IIS 70以上版本完全重写了IIS的内核结构,采用模块化的设计构架,URL重写也成为可选安装的模块之一。朝暮数据的全部虚拟主机都安装了URL重写模块,因此客户可以通过轻松的配置webconfig文件来实现伪静态功能。

下面是实现第一段所述伪静态规则的webconfig代码。

<xml version="10" encoding="UTF-8"><configuration>    <systemwebServer>        <rewrite>            <rules>                <rule name="已导入的规则 1">                    <match url="product/([a-z]+)/([0-9]+)" ignoreCase="false" />                    <action type="Rewrite" url="productaspxcategory={R:1}&amp;id={R:2}" appendQueryString="false" />                </rule>            </rules>        </rewrite>    </systemwebServer></configuration>

2、Apache服务器

Linux系统下的Apache服务器在伪静态设置方面比较简单。由于Apache的mod_rewrite模块默认就是开启的,所以站长只需在空间下上传正确的htaccess配置文件即可。下面也给出实现上述伪静态功能的规则代码。

RewriteEngine onRewriteRule product/([a-z]+)/([0-9]+) productphpcategory=$1&id=$2

3、IIS 60服务器

在IIS 60环境下,无论是ASP、ASPNET或者是PHP程序,我们都可以借助第三方的Rewrite组件来实现静态化,点此下载组件。

将该组件下载到服务器的C盘,解压后对目录设置权限,赋予Users组读取和运行权限。

4、打开该目录下的httpdini文件,这里是伪静态规则设置的核心。比如我们要实现上述功能,可以这样编写规则代码。

[ISAPI_Rewrite]了http://mfulinmenstcom/m/prod_viewaspxTypeId=65&Id=183&Fid=t3:65:3&typefid=65

RewriteRule ^/product/([a-z]+)/(\d+)\()$ /productaspx\category=$1&id=$2

5、下面就是将该组件配置到IIS中了。打开网站属性,点击ISAPI筛选器选项卡,再点击添加按钮。

6、在对话框中,输入筛选器名称,如rewrite,然后定位到我们之前解压下来的可执行文件Rewritedll上。

至此,基于IIS 60的伪静态配置完毕。如果有多个站点,那么就复制同样的Rewrite目录,然后定位到不同目录中的Rewritedll即可。如果要修改规则,只需修改httpdini文件,保存后即时生效,无需重启IIS。

ASPNET Routing

NET框架从40版本起开始支持Routing功能,如果您的代码是ASPNET编写的,则可以考虑使用这种静态化方式。这种方式的好处就是无需在服务器上做配置,并且伪静态的URL地址和整个代码是天然一体的,代码中可以自动生成静态化URL,避免了在htaccess/webconfig模式下,一旦修改了伪静态规则,还要修改代码中的静态化网址的麻烦。

你好,这个得根据你的网站程序和WEB服务器环境来设置伪静态的,比如你用LNMP环境,而用的PHP程序是DZ25那么你的伪静态就可以为:

rewrite ^([^\])/topic-(+)\html$ $1/portalphpmod=topic&topic=$2last;

rewrite ^([^\])/article-([0-9]+)-([0-9]+)\html$ $1/portalphpmod=view&aid=$2&page=$3 last;

rewrite ^([^\])/forum-(\w+)-([0-9]+)\html$ $1/forumphpmod=forumdisplay&fid=$2&page=$3 last;

rewrite ^([^\])/thread-([0-9]+)-([0-9]+)-([0-9]+)\html$ $1/forumphpmod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;

rewrite ^([^\])/group-([0-9]+)-([0-9]+)\html$ $1/forumphpmod=group&fid=$2&page=$3 last;

rewrite ^([^\])/space-(username|uid)-(+)\html$ $1/homephpmod=space&$2=$3 last;

rewrite ^([^\])/blog-([0-9]+)-([0-9]+)\html$ $1/homephpmod=space&uid=$2&do=blog&id=$3 last;

rewrite ^([^\])/(fid|tid)-([0-9]+)\html$ $1/indexphpaction=$2&value=$3 last;

rewrite ^([^\])/([a-z]+[a-z0-9_])-([a-z0-9_\-]+)\html$ $1/pluginphpid=$2:$3 last;

if (!-e $request_filename) {

return 404;

}

有问题可以+Q+群222802357找群主吧。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » ThinkPHP怎么实现伪静态

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情