URL 静态化可以提高搜索引擎抓取,开启本功能需要对 Web 服务器增加相应的 Rewrite 规则,且会轻微增加服务器负担。本教程讲解如何在 IIS 环境下配置各个产品的 Rewrite 规则。

下面以Discuz为例讲解IIS环境下配置Rewrite 规则,希望大家能举一反三。

一、首先下载 Rewrite.zip 的包,解压到任意盘上的任意目录。

Rewrite.zip 下载

各个产品的 Rewrite 规则包不同,请选择对应的产品下载对应的 Rewrite 规则。

Discuz!6.0.0/6.1.0 的 Rewrite 规则下载地址:http://www.discuz.net/attachment.php?aid=195279

UCenter Home1.0.0 的 Rewrite规则下载地址:http://u.discuz.net/help/down/iisRewrite.rar

SupeSite6.0_X-Space4.0_UC 的Rewrite 规则下载地址:http://www.supesite.com/download/iisrewrite.zip

SupeV 的 Rewrite 规则下载地址:http://download.comsenz.com/SupeV/tools/rewrite_iis.zip

下载各个产品的 Rewrite 规则并且重命名后如下图所示存放:

二、配置方法

Discuz!、UCHome、SupeSite/X-Space、SupeV 的 Rewrite 配置方法类似,下面以 Discuz!6.0.0/6.1.0 的 Rewrite 规则配置方法为例讲解如何在 IIS 环境下配置 Rewrite 规则。

在 IIS 管理器里选择网站,右键选择“属性”,如下图所示:

在弹出的窗口里选择“ISAPI筛选器”

上图中点击“添加”,在弹出的窗口里“筛选器名称”填写“rewrite”

上图界面中点击“浏览”,选择下载解压后的 Discuz! Rewrite 规则目录下的 Rewrite.dll 文件

浏览完毕点击“确定”

添加完毕点击“确定”

重新启动 IIS

重新选择该站点 => 右键“属性”=> “ISAPI 筛选器”,如果看到状态为向上的绿色箭头,就说明 Rewrite 模块安装成功了。

Rewrite 规则配置成功了,但是这个时候浏览论坛地址依旧不是伪静态的,还需要到论坛后台做相应的设置才可以。

论坛后台 => 全局 => 优化设置,下图中红色区域选项:

“URL 静态化”:如上图所示有五个选项,根据您的需求选择即可,最多可以选择五个,不选则不生效。

“Rewrtie 兼容性”:如果您的服务器不支持 Rewrite 规则中的中文字符,请选择“是”。对于没有此问题的服务器,可以选择“否”。

上面两项设置完毕“提交”保存即可。

这个时候返回到论坛首页随便打开一个版块或者一个帖子即可看到 Discuz! 的 Rewrite 伪静态配置成功!

三、各个产品的 Rewrite 规则

httpd.ini 文件内容如下配置

复制内容到剪贴板Code:

[ISAPI_Rewrite]
#
3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Discuz! Rewrite规则
# 独立主机用户
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
RewriteRule ^(.*)/archiver/((fidtid)-[\w\-]+\.html)\?*(.*)$
$1/archiver/index\.php\?$2&$4
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\.html\?*(.*)$
$1/forumdisplay\.php\?fid=$2&page=$3&$4
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html\?*(.*)$
$1/viewthread\.php\?tid=$2&extra=page\%3D$4&page=$3&$4
RewriteRule ^(.*)/space-(usernameuid)-(.+)\.html\?*(.*)$
$1/space\.php\?$2=$3&$4
RewriteRule ^(.*)/tag-(.+)\.html\?*(.*)$ $1/tag\.php\?name=$2&$3
# SupeSite Rewrite规则
# 独立主机用户
# 修改以下语句中的 /supesite 修改为你的SupeSite目录地址,如果程序放在根目录中,请将 /supesite 修改为 /
RewriteRule ^/supesite/([0-9]+)$ /supesite/index\.php\?uid/$1 [L]
RewriteRule ^/supesite/([0-9]+)/spacelist(.+)$
/supesite/index\.php\?uid/$1/action/spacelist/type$2 [L]
RewriteRule ^/supesite/([0-9]+)/viewspace(.+)$
/supesite/index\.php\?uid/$1/action/viewspace/itemid$2 [L]
RewriteRule ^/supesite/([0-9]+)/viewbbs(.+)$
/supesite/index\.php\?uid/$1/action/viewbbs/tid$2 [L]
RewriteRule ^/supesite/([0-9]+)/(.*)$ /supesite/index\.php\?uid/$1/$2
[L]
RewriteRule ^/supesite/action(.+)$ /supesite/index\.php\?action$1 [L]
RewriteRule ^/supesite/category(.+)$
/supesite/index\.php\?action/category/catid$1 [L]
RewriteRule ^/supesite/viewnews(.+)$
/supesite/index\.php\?action/viewnews/itemid$1 [L]
RewriteRule ^/supesite/viewthread(.+)$
/supesite/index\.php\?action/viewthread/tid$1 [L]
RewriteRule ^/supesite/mygroup(.+)$
/supesite/index\.php\?action/mygroup/gid$1 [L]
# UCHome Rewrite规则
# 独立主机用户
# 修改以下语句中的 /uchome 修改为你的uchome目录地址,如果程序放在根目录中,请将 /uchome 修改为 /
RewriteRule ^/uchome/(spacenetwork)-(.+)\.html$
/uchome/$1\.php\?rewrite=$2 [L]
RewriteRule ^/uchome/(spacenetwork)\.html$ /uchome/$1\.php [L]
RewriteRule ^/uchome/([0-9]+)$ /uchome/space\.php\?uid=$1 [L]
# SupeV Rewrite规则
# 独立主机用户
RewriteRule
^(.*)/ivideo(-tv-([0-9]+))?(-ti-([0-9]+))?(-tc-([0-9]+))?(-page-([0-9]+))?\.html$
$1/ivideo\.php\?tv=$3&ti=$5&tc=$7&page=$9
RewriteRule
^(.*)/ispecial(-tv-([0-9]+))?(-ti-([0-9]+))?(-tc-([0-9]+))?(-page-([0-9]+))?\.html$
$1/ispecial\.php\?tv=$3&ti=$5&tc=$7&page=$9
RewriteRule ^(.*)/icategory\.html$ $1/icategory\.php
RewriteRule
^(.*)/category-cid-([0-9]+)(-tag-([^-]*))?(-timelimit-([0-9]+))?(-orderlimit-([0-9]+))?(-page-([0-9]+))?\.html$

$1/category\.php\?cid=$2&tag=$4&timelimit=$6&orderlimit=$8&page=$10
RewriteRule
^(.*)/vspace-(midusername)-(.+)\.html$ $1/vspace\.php\?$2=$3
RewriteRule ^(.*)/video-(vidivid)-(.+)\.html$ $1/video\.php\?$2=$3
RewriteRule ^(.*)/special-spid-([0-9]+)\.html$ $1/special\.php\?spid=$2

常见问题: 配置好后,HTTPD.INI配置也正确,但还是打不开。这时有可能是rewrite.dll\httpd.ini的权限问题,可以试着给这两个文件EVERYONE的读取权限。

伪静态的实现方法:IIS环境下配置的更多相关文章

  1. Windows-Server-2008、IIS7.0环境下配置伪静态化

    在Windows-Server-2008.IIS7.0环境下配置伪静态化                首先,是IIS7.0的配置,由于Windows Server 2008操作系统默认的IIS版本为 ...

  2. asp.net core 2.1开发环境下配置IIS

    asp.net core 2.1是可以在开发环境下配置到IIS中的,这样就可以在vs中按F5直接运行了 在项目上右键点击属性,然后在Debug中配置如下参数 首先点击New按钮,输入IIS,点击确定 ...

  3. 【经验之谈】Windows环境下配置WordPress

    前言 wordpress全球著名的开放博客平台,拥有成千上万个各式插件和不计其数的主题模板样式,使用php和mysql搭建,下面说下载windows环境下配置wordpress,经验之谈. 安装 关于 ...

  4. IIS环境下如何批量添加、修改、删除绑定的域名

    IIS环境下如何批量添加和修改所绑定域名 1.关闭IISADMIN服务和W3SVC服务,可以从服务里面关闭,也可以直接执行命令:net stop iisadmin /y: 2.打开“C:\WINDOW ...

  5. Nginx环境下配置PHP使用的SSL认证(https)

    最近一段时间发现好多网站都从http协议变成了加密的https协议,比如说百度.吾志等等.https看起来比http高端了好多,而且在不同的浏览器向上还会显示出不同于http的URL展示效果(比如说c ...

  6. 有了SSL证书,如何在IIS环境下部署https?【转载】

    昨天各位小伙伴都很开心的领取了自己的SSL证书,但是大部分小伙伴却不知道如何部署,也许是因为第一次接触SSL这种高端的东西吧,不过个人觉得就是懒懒懒...本来小编也挺懒的,但是答应了各位小伙伴的,那么 ...

  7. windows Apache 环境下配置支持HTTPS的SSL证书

    windows Apache 环境下配置支持HTTPS的SSL证书 1.准备工作 1)在设置Apache + SSL之前, 需要做: 安装Apache, 下载安装Apache时请下载带有SSL版本的A ...

  8. windows环境下配置tornado

    1.前言        在网上看过一些在windows下配置tornado的教程,有一些写的十分复杂,让人望而生却.然后我就自己试着在windows下面配置tornado.我发现,方法非常简单,短短几 ...

  9. 有了SSL证书,如何在IIS环境下部署https?

    昨天各位小伙伴都很开心的领取了自己的SSL证书,但是大部分小伙伴却不知道如何部署,也许是因为第一次接触SSL这种高端的东西吧,不过个人觉得就是懒懒懒...本来小编也挺懒的,但是答应了各位小伙伴的,那么 ...

随机推荐

  1. OpenLayers使用symbolizers样式特征

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head ...

  2. 代码规范:在Keil5中使用代码格式化工具Astyle(插件)

    r如果日志提示没有被格式化,那么检查你的文件是不是有错误,编译一下,没错误的时候才能格式化 keil mdk都啥年代了每次更新还是都无法解决补全bug也不添加格式化工具 所以这里要用一个第三方插件ht ...

  3. spring boot自动配置之jdbc(转)

    1.DataSource配置 1.1 默认配置application.xml spring.datasource.url=jdbc:mysql://localhost/test spring.data ...

  4. Java中用JXL导出Excel代码详解

    jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI.其中功能相对POI比较弱一点.但jExcelAPI对中文支 ...

  5. 洛谷P1456Monkey King

    洛谷P1456 Monkey King 题目描述 Once in a forest, there lived N aggressive monkeys. At the beginning, they ...

  6. Uva10817 Headmaster's Headache

    https://odzkskevi.qnssl.com/b506a3c20adad78678917d1ff4c9b953?v=1508327485 [题解] dp[i][S1][S2]表示前i个教师选 ...

  7. Ubuntu上更换163源 - Mars Loo的博客

    转载*请注明原始出处:http://blog.csdn.net/a464057216/article/details/50865895 先备份源/etc/apt/sources.list为source ...

  8. ubuntu16安装python3.7

    ####################################################源码安装python,注意shell脚本第一行开头的要求#################### ...

  9. 【Codeforces Round #430 (Div. 2) D】Vitya and Strange Lesson

    [链接]点击打开链接 [题意] 给出一个数组,每次操作将整个数组亦或一个数x,问得到的数组的结果中的mex.mex表示为自然数中第一个没有出现过的数. [题解] 异或的效果是可以累加的,所以不用每次都 ...

  10. 关于chrome浏览器的帐号密码自动填充以及出现的黄色背景色填充问题

    不知道大家平时做项目的时候有木有关注这个问题,其实之前做项目遇到过类似的问题,但是因为是单独的chrome浏览器的填充,而且是样式问题稍微严重点,也就没在意.然而在近期的项目中有遇到了这个问题,最为一 ...