iis 伪静态设置

 更新时间:2016年9月20日 19:01  点击:1962

1、将下载的 IIS Rewrite 组件解压,放到适当的目录(如 C:Rewrite)下。

 iis 伪静态设置

 

2、在“IIS管理器”里选择网站,右键,属性。

 iis 伪静态设置

3、选择“ISAPI”,点击“添加”。

 iis 伪静态设置

4、填入筛选器名称,如“rewrite”。

 iis 伪静态设置

5、可执行文件下方点击“浏览”,选择刚才解压的Rewrite组件位置,Rewrite.dll。

 iis 伪静态设置

6、确认选择正确后,点击“确定”。

 iis 伪静态设置

7、点击“确定”,完成筛选器添加。

 iis 伪静态设置

8、重启IIS。

 iis 伪静态设置

 iis 伪静态设置

9、重启IIS后,再次选择站点,右键,属性,看到如下所示向上的绿箭头,说明 IIS Rewrite 成功添加并运行。

 iis 伪静态设置

IIS Rewrite 规则设置

解压后的 IIS Rewrite 组件目录(如 C:Rewrite)中,有一个 httpd.ini 文件,将相应规则写入到这个文件中即可。

 

1. 安装重写插件Rewrite.dll 

如果你的 IIS 服务器加载过 Rewrite.dll 则可以不用下载。 

Rewrite.dll文件:http://blog.hxxsh.com/UploadFiles/2006-10/1013525016.rar 

加载 Rewrite.dll 

在 IIS 的 Isapi 上添加筛选器 

筛选器名称为:re 

可执行文件选择 Rewrite.dll 就可以了! 

2. 配置 httpd.ini 
打开你的httpd.ini,找到 

[ISAPI_Rewrite] 

# 3600 = 1 hour 
CacheClockRate 3600 

RepeatLimit 32 

# Protect httpd.ini and httpd.parse.errors files 
# from accessing through HTTP 
RewriteRule ^(.*)/archiver/([a-z0-9-]+.html)$ $1/archiver/index.php?$2 
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+).html$ $1/forumdisplay.php?fid=$2&page=$3 
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3 
RewriteRule ^(.*)/profile-(username|uid)-(.+?).html$ $1/viewpro.php?$2=$3 

  

以上是 Discuz!官方提供的配置代码,注意正则格式。 

3. 应用 
比如,将read.php?bl_id=123&bu_id=456 伪静态成 /html/123/456.html 

可以这样写: 

RewriteRule ^(.*)/html/([0-9]+)/([0-9]+).html$ $1/read.php?bl_id=$2&bu_id=$3 点击收藏:“IIS下下伪静态html(URL Rewrite)设置方法”

要使你的IIS服务器支持伪静态重写,按以下步骤来:

1. 安装重写插件Rewrite.dll

如果你的 IIS 服务器加载过 Rewrite.dll 则可以不用下载。

加载 Rewrite.dll

在 IIS 的 Isapi 上添加筛选器

筛选器名称为:re

可执行文件选择 Rewrite.dll 就可以了!

2. 配置 httpd.ini
打开你的httpd.ini,找到

[ISAPI_Rewrite]

# 3600 = 1 hour
CacheClockRate 3600

RepeatLimit 32

# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
RewriteRule ^(.*)/archiver/([a-z0-9-]+.html)$ $1/archiver/index.php?$2
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+).html$ $1/forumdisplay.php?fid=$2&page=$3
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3
RewriteRule ^(.*)/profile-(username|uid)-(.+?).html$ $1/viewpro.php?$2=$3


以上是 Discuz!官方提供的配置代码,注意正则格式。

3. 应用
比如,将read.php?bl_id=123&bu_id=456 伪静态成 /html/123/456.html

可以这样写:

RewriteRule ^(.*)/html/([0-9]+)/([0-9]+).html$ $1/read.php?bl_id=$2&bu_id=$3


PW的规则:[ISAPI_Rewrite]
RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
RewriteRule ^(.*)/simple/([a-z0-9_]+.html)$ $1/simple/index.php?$2

uchome2.0的登录验证机制越来越像Ucenter的了

Uchome2.0采用cookie+数据库的方式来进行用户登录验证的
1:登录
A:用户填好登录表单之后数据被提交给sourcedo_login.php 处理
B:在do_login.php中下面这些语句接收传递来的用户名密码与cookie生效时间
uchome 2.0登陆验证机制
C:然后验证用户提交来的用户名以及密码的正确性,不正确则跳转并提示登录失败
uchome 2.0登陆验证机制
注意:这里验证用户名与密码的正确性是通过uc_client在Ucenter用户中心数据库中查询
D:若验证通过之后,再将获取到得用户账户信息赋给setarr变量数组
uchome 2.0登陆验证机制
E:查询uchome的数据库看该用户信息是否存在于Uchome数据库中,不存在的话,则将从Ucenter中查询到的用户数据写入到uchome的member表中,存在则将member中的密码替换掉从Ucenter中查询出来的密码,存入setarr变量数组中。
uchome 2.0登陆验证机制
F:将用户登录信息写入到Uchome的session表中
uchome 2.0登陆验证机制
Session表的数据如下
uchome 2.0登陆验证机制
Insertsession函数在sourcefunction_space.php中定义
其主要功能为a:清除session表中的某个用户的记录b:获得用户的IP以及是否使用隐身道具
c: 将setarr变量数组中的数据插入到session表中。d:更新统计数数据等
G:将用户名与密码加密写入cookie中
uchome 2.0登陆验证机制
2:验证
判断当前用户登录状态是通过sourcefunction_common.php中的checkauth函数实现的
下面就来分析这个函数
A:判断$_cookie[auth]是否存在,若不存在则不进行任何处理,并清除所有cookie
uchome 2.0登陆验证机制
若存在则:
B:从cookie中反解出用户名跟密码信息
uchome 2.0登陆验证机制
注意:这里说的密码以及上面说的将密码加密进cookie中的密码并不是用户的真实密码,而是经过md5双重加密并且salt处理后的密码
C:从session数据表中取出用户ID为$_SGLOBAL[supe_uid]的用户信息,若该记录存在则执行下面的操作,否则执行D操作(直接查询用户数据库)
uchome 2.0登陆验证机制
如果取出来的密码与cookie中的密码相等,那么判定为登录成功将数据写入到$_SGLOBAL['session']数组
uchome 2.0登陆验证机制
否则判定为登录失败,清除所有cookie
D:在C步时,若在session表中没有该用户的数据则,在用户数据表member中查询该ID得用户数据,看cookie中的密码是否与数据库中的密码一样,如果一样则登录成功,并将用户数据写入到session表中保持用户的登录状态,否则登录失败
uchome 2.0登陆验证机制
上面无论是用session表来判定登录状态还是用member表来判定登录状态,都会影响到一个变量,那就是$_SGLOBAL['supe_uid'],在程序处理的时候,用户登录与否一般要用到得变量就是$_SGLOBAL['supe_uid']。
例如在space.php文件中 有个这样的语句
uchome 2.0登陆验证机制
此语句中的checklogin函数就是检测用户是否需要登录
uchome 2.0登陆验证机制
这个函数就是看$_SGLOBAL['supe_uid']是否存在,存在的话就以这个ID的身份去操作,不存在就说明用户登录不成功 需要用户登录才能操作。

Discuz Ucenter整合自己应用程序代码

安装(这个不用说详了吧)

安装官方安装后,会自动把ucenter和dz打通的,如图

Discuz Ucenter整合自己应用程序代码




3、添加自己的新的应用

点添加新应用,然后选自定义,然后如图(根据你自己的更改)输入
Discuz Ucenter整合自己应用程序代码



4、创建自己的测试环境

把UCenter_1.5.0_SC_UTF8(1)advancedexamples拷贝到你的测试目录,并把advanced中的uc_client放到examples目录下~~

(1)修改config.inc.php为自己本机的配置,如下是我的,可参考


<?php

define
('UC_CONNECT''mysql');    
// 连接 UCenter 的方式: mysql/NULL, 默认为空时为 fscoketopen()

           // mysql 是直接连接的数据库, 为了效率, 建议采用 mysql

//数据库相关 (mysql 连接时, 并且没有设置 UC_DBLINK 时, 需要配置以下变量)

define('UC_DBHOST''localhost');   
// UCenter 数据库主机

define('UC_DBUSER''root');    
// UCenter 数据库用户名

define('UC_DBPW''');     
// UCenter 数据库密码

define('UC_DBNAME''ps_ucenter');    
// UCenter 数据库名称

define('UC_DBCHARSET''utf8');    
// UCenter 数据库字符

define('UC_DBTABLEPRE''ps_ucenter.uc_');   
// UCenter 数据库表前缀

//通信相关

define('UC_KEY''example2');    
// 与 UCenter 的通信密钥, 要与 UCenter 保持一致

define('UC_API''http://localhost/project/passport/ucenter_1.5.0_sc_utf8(1)/upload');
// UCenter 的 URL 地址, 在调用头像时依赖此常量

define('UC_CHARSET''utf8');    
// UCenter 的字符集

define('UC_IP''');     
// UCenter 的 IP, 当 UC_CONNECT 为非 mysql 方式时, 并且当前应用服务器解析域名问题时, 请设置此值

define('UC_APPID'4);     
// 当前应用的 ID

//ucexample_2.php 用到的应用程序数据库连接参数

$dbhost 'localhost';   
// 数据库服务器

$dbuser 'root';   
// 数据库用户名

$dbpw '';    
// 数据库密码

$dbname 'ps_example';   
// 数据库名

$pconnect 0;    
// 数据库持久连接 0=关闭, 1=打开

$tablepre 'example_';     
// 表名前缀, 同一数据库安装多个论坛请修改此处

$dbcharset 'utf8';   
// MySQL 字符集, 可选 'gbk', 'big5', 'utf8', 'latin1', 留空为按照论坛字符集设定

//同步登录 Cookie 设置

$cookiedomain '';    
// cookie 作用域

$cookiepath '/';   // cookie 作用路径

复制代码

这个是我的,注意,其中的数据库配置,还有UC_KEY之类的,一定要和自定义的相同。。。

这时再去Ucenter的应用管理去看一下,如果出现如下,说明配置正确,然后再进行下面的步骤

Discuz Ucenter整合自己应用程序代码



(2)创建测试数据库ps_example,并建立如下表

CREATE TABLE `example_members` (

   `
uidint(11NOT NULL COMMENT 'UID',

   `
usernamechar(15) default NULL COMMENT '用户名',

   `
admintinyint(1) default NULL COMMENT '是否为管理员',

   
PRIMARY KEY  (`uid`)

TYPE=MyISAM;
复制代码

(3)然后进入example目录中,打开ucexample_1.php,ucexample_2.php进行测试吧~~~!

如果顺利,应该可以看到如下(一下是运行ucexample_2.php的截图)

Discuz Ucenter整合自己应用程序代码

 

js计算时分秒代码
<script>
function b(n){
 return n>=10 ? n :  "0"+n;
}
function getNow(){
 var d=new Date();
 var s = d.getFullYear() + "-" +b((d.getMonth()+1)) + "-" + b(d.getDate()) + " " + b(d.getHours()) + ":" + b(d.getMinutes()) + ":" + b(d.getSeconds());
 return s;
}
alert(getNow());
</script>

Discuz! 与 UCenter 连接的一些信息,本设置在论坛安装时自动生成,一般情况下请不要修改,修改前请备份 config.inc.php 文件,以防止修改错误导致论坛无法运行。

设置的位置在:Discuz! 后台 => 全局 => UCenter 设置,如下图所示:

请根据 UCenter 中的对应信息,详细设置下面的信息即可。

UCenter 应用 ID:该值为当前论坛在 UCenter 的应用 ID,一般情况请不要改动。

UCenter 通信密钥:通信密钥用于在 UCenter 和 Discuz! 之间传输信息的加密,可包含任何字母及数字,请在 UCenter 与 Discuz! 设置完全相同的通讯密钥,以确保两套系统能够正常通信。

UCenter 访问地址:该值在您安装完 UCenter 后会被初始化,在您 UCenter 地址或者目录改变的情况下,修改此项,一般情况请不要改动。例如: http://www.sitename.com/uc_server (最后不要加'/')

UCenter IP 地址:如果您的服务器无法通过域名访问 UCenter,可以输入 UCenter 服务器的 IP 地址。

UCenter 连接方式:请根据您的服务器网络环境选择适当的连接方式。如果您的 UCenter 和 Discuz! 在同一台服务器则可以选择数据库方式,同时会看到上图中的设置项目;如果您的 UCenter 和 Discuz! 不在同一台服务器则可以选择接口方式,接口方式无需设置其他的选项。

UCenter 数据库服务器:可以是本地也可以是远程数据库服务器,如果 MySQL 端口不是默认的 3306,请填写如下形式:127.0.0.1:6033。

UCenter 数据库用户名、密码、数据库名、表前缀请根据 UCenter 实际的数据库信息填写即可。

是否允许在论坛激活:在其他应用注册的用户,是否允许在论坛激活。

当您的 UCenter 系统中安装了 UCenter Home 应用,则会看到下图的设置项目

将哪种类型的帖子加入到 UCHome 的动态:如果有人发起、回复或者参与选中类型的主题,这个动作将会发布到 UCHome ,显示到 UCHome 的站点动态。如果不选“回复主题”,那么只有发起主题的动作发布到 UCHome。

 

这里的通信密钥要和 config.pnp 里的 define('UC_KEY',后面的数字对应

UC通信情况一直显示正在连接...,怎么办?

上回我也是这样的。不过修改了CONFIG里的KEY通信密钥就好啦

[!--infotagslink--]

相关文章

  • Android设置TextView竖着显示实例

    TextView默认是横着显示了,今天我们一起来看看Android设置TextView竖着显示如何来实现吧,今天我们就一起来看看操作细节,具体的如下所示。 在开发Android程序的时候,...2016-10-02
  • C#中静态的深入理解

    这篇文章详细的介绍了C#中的静态,有需要的朋友可以参考一下...2020-06-25
  • vivo x9怎么设置默认输入法?vivo x9设置默认输入法教程

    本篇文章介绍了vivo x9如何设置默认输入法的方法,手机小白们快来了解一下吧。 问:vivo x9怎么设置默认输入法?答:其实设置默认输入法很容易,首先点击应用程序,然后点设...2017-01-22
  • Windows Server 2008 R2远程设置选项灰色解决方法

    最近公司环境有几天Windows Server 2008R2的服务器因为没有激活导致过期后都不能远程,连接显示器后发现远程设置的地方为灰色了...2016-01-27
  • 浅析C#中静态方法和非静态方法的区别

    C#静态方法与非静态方法的区别不仅仅是概念上的,那么他们有什么具体的区别呢?让我们通过本文向大家介绍下C#中静态方法和非静态方法的区别,一起看看吧...2020-06-25
  • PHP脚本实现Magento权限设置与缓存清理

    PHP脚本实现Magento权限设置与缓存清理的实例代码有需要的朋友可参考一下。 代码如下 复制代码 <?php ## 设置文件644,目录755 function Al...2016-11-25
  • Windows 2016 服务器安全设置

    最近公司的网站升级Windows 2016服务器,选择安装了最新版的Windows 2016,以前使用Windows服务器还是Windows 2003系统,发现变化还是挺多的,依次记录下来以备后面查阅...2020-10-05
  • 深入分析为Visual Assist设置快捷键的方法

    本篇文章是对为Visual Assist设置快捷键的方法进行了详细的分析介绍,需要的朋友参考下...2020-04-25
  • win2008之IIS7中FTP设置技巧

    如果要允许用户在站点中上载或下载文件,就需要在 Web 服务器上设置 FTP。无论站点是位于 Intranet 还是位于 Internet 上,使用 FTP 在所提供的位置中上载和下载文件的原理是相同的。...2016-01-27
  • 西部数码空间伪静态配置方法图解

    今天在使用西部数码空间时发现里面有很多定义好的伪静态规则了,下面我来给大家介绍一下在后面主机面板中配置使用伪静态功能吧,希望文章对各位会带来帮助。...2016-10-10
  • goland设置颜色和字体的操作

    这篇文章主要介绍了goland设置颜色和字体的操作方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-04
  • C#如何更改Word的语言设置

    这篇文章主要为大家详细介绍了C#如何更改Word的语言设置,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • Apache在httpd.conf配置文件中设置伪静态(Rewrite)

    .htaccess文件应该被用在内容提供者需要针对特定目录改变服务器的配置而又没有root权限的情况下。如果服务器管理员不愿意频繁修改配置,则可 以允许用户通过.htaccess文件自...2016-01-28
  • Go 自定义package包设置与导入操作

    这篇文章主要介绍了Go 自定义package包设置与导入操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • php 类的静态变量的初始化

    共有的成员还有办法解决,例如: class A { static public $child; } A::$child = new B(); 对于私有的成员似乎就没有什么干净的方法了,只能这样做: class A {...2016-11-25
  • 三星s5820如何恢复出厂设置

    提示,恢复出厂前我们最好对数据进行一些备份哦,包括:联系人,短信,电话,视频,照片哦,恢复之后手机中的数据就丢失了。 具体方法 1.在待机模式下,点击【应用程序】。 2.点击...2016-09-20
  • Win7/Windows2003下IIS6.0、IIS7.5的伪静态组件安装和伪静态配置方法

    Win7Windows2003下IIS6.0、IIS7.5的伪静态组件安装和伪静态配置方法,还包括常用的伪静态规则使用方法...2016-01-27
  • apache .htaccess 伪静态页

    apache .htaccess 伪静态页 静态页的地址: http://211.166.45.10/company/new/new_10000.html 指定的动态地址:php?id=10000">http://211.166.45.10/company/new.php?id=...2016-01-28
  • iis伪静态中文url出现乱码的解决办法

    这篇文章主要介绍了iis伪静态中文url出现乱码的解决办法,需要的朋友可以参考下...2017-07-06
  • C++中静态初始化数组与动态初始化数组详解

    今天小编就为大家分享一篇C++中静态初始化数组与动态初始化数组详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-25