Apache伪静态资料

Apache伪静态资料
Apache伪静态资料

Apache伪静态资料

Apache模块mod_rewrite

说明一个基于一定规则的实时重写URL请求的引擎

状态扩展(E)

模块名rewrite_module

源文件mod_rewrite.c

兼容性仅在Apache 1.3 及以后的版本中可用

概述

此模块提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规

则以及附加条件规则的灵活而且强大的URL操作机制。此URL操作可以依赖于各种测试,比如服务器变量、环境变量、

HTTP头、时间标记,甚至各种格式的用于匹配URL组成部分的查找数据库。

此模块可以操作URL的所有部分(包括路径信息部分),在服务器级的(httpd.conf)和目录级的(.htaccess) 配置都有效,

还可以生成最终请求字符串。此重写操作的结果可以是内部子处理,也可以是外部请求的转向,甚至还可以是内部代理处

理。

但是,所有这些功能和灵活性带来一个问题,那就是复杂性,因此,不要指望一天之内就能看懂整个模块。

更多的讨论、细节、示例,请查看详细的URL 重写文档。

特殊字符的引用

在Apache 1.3.20中,TestString和Substitution中的特殊字符可以用前导斜杠(/)来实现转义(即忽略其特殊含义而视之为普通

字符)。比如,Substitution可以用"/$" 来包含一个美元符号,以避免mod_rewrite把它视为反向引用。

环境变量

此模块会跟踪两个额外的(非标准)CGI/SSI环境变量,SCRIPT_URL和SCRIPT_URI。他们包含了当前资源的逻辑网络视

图,而标准CGI/SSI变量SCRIPT_NAME和SCRIPT_FILENAME包含的是物理系统视图。

注意:这些变量保持的是其最初被请求时的URI/URL,即在任何重写操作之前的URI/URL。其重要性在于他们是重写操

作重写URL到物理路径名的原始依据。

示例

SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html

SCRIPT_FILENAME=/u/rse/.www/index.html

SCRIPT_URL=/u/rse/

SCRIPT_URI=https://www.360docs.net/doc/a118523125.html,/u/rse/

实用方案

我们提供了URL 重写指南和高级 URL 重写指南文档,列举了许多基于URL的问题的实用方案,其中你可以找到真实有

用的规则集。

RewriteBase 指令

说明设置目录级重写的基准URL

语法RewriteBase URL-path

默认值参见使用方法

作用域directory, .htaccess

覆盖项FileInfo

状态扩展(E)

模块mod_rewrite

RewriteBase指令显式地设置了目录级重写的基准URL。在下文中,你将看到RewriteRule 可以用于目录级的配置

文件中(.htaccess)并在局部范围内起作用,即规则实际处理的只是剥离了本地路径前缀的一部分。处理结束后,这个

路径会被自动地附着回去。默认值是"RewriteBase physical-directory-path"。在对一个新的URL进行替换时,此模块必须把这个URL重新注入到服务器处理中。为此,它必须知道其对应的URL前缀

或者说URL基准。通常,此前缀就是对应的文件路径。但是,大多数网站URL不是直接对应于其物理文件路径的,因而

一般不能做这样的假定! 所以在这种情况下,就必须用RewriteBase指令来指定正确的URL前缀。

如果你的网站服务器URL不是与物理文件路径直接对应的,你必须在每个使用RewriteRule 的.htaccess文件中使用

RewriteBase指令。

例如,目录级配置文件内容如下:

# /abc/def/.htaccess -- /abc/def 目录的配置文件

# 注意:/abc/def 是/xyz 的物理路径(例如存在一条'Alias /xyz /abc/def'指令)。

RewriteEngine On

# 让服务器知道我们使用的是/xyz 而不是物理路径/abc/def

RewriteBase /xyz

# 重写规则

RewriteRule ^oldstuff/.html$ newstuff.html

上述例子中,对/xyz/oldstuff.html的请求被正确地重写为对物理文件/abc/def/newstuff.html 的请求。

仅供Apache Hacker们参考

以下列出了内部处理的详细步骤:

请求:

/xyz/oldstuff.html

内部处理过程:

/xyz/oldstuff.html -> /abc/def/oldstuff.html (per-server Alias)

/abc/def/oldstuff.html -> /abc/def/newstuff.html (per-dir RewriteRule)

/abc/def/newstuff.html -> /xyz/newstuff.html (per-dir RewriteBase)

/xyz/newstuff.html -> /abc/def/newstuff.html (per-server Alias)

结果:

/abc/def/newstuff.html

虽然这个过程看来很繁复,但是由于目录级重写的到来时机已经太晚了,它不得不把这个(重写)请求重新注入到Apache核

心中,所以Apache内部确实是这样处理的。但是:它的开销并不象看起来的那样大,因为重新注入完全在Apache服务器

内部进行,而且这样的过程在Apache内部也为其他许多操作所使用。所以,你可以充分信任其设计和实现是正确的。

RewriteCond 指令

说明定义重写发生的条件

语法RewriteCond TestString CondPattern [flags]

作用域server config, virtual host, directory, .htaccess

覆盖项FileInfo

状态扩展(E)

模块mod_rewrite

RewriteCond指令定义了规则生效的条件,即在一个RewriteRule 指令之前可以有一个或多个RewriteCond指令。

条件之后的重写规则仅在当前URI 与Pattern匹配并且满足此处的条件(TestString能够与CondPattern匹配)时才会起作用。

TestString是一个纯文本的字符串,但是还可以包含下列可扩展的成分:

? RewriteRule反向引用,引用方法是:

$N

(0 <= N <= 9)引用当前(带有若干RewriteRule指令的)RewriteCond中的与Pattern匹配的分组成分(圆括号!)。

? RewriteCond反向引用,引用方法是:%N

(1 <= N <= 9)引用当前若干RewriteCond条件中最后符合的条件中的分组成分(圆括号!)。? RewriteMap扩展,引用方法是:

${mapname:key|default}

细节请参见RewriteMap 指令。

? 服务器变量,引用方法是:

%{NAME_OF_VARIABLE}

NAME_OF_VARIABLE可以是下表列出的字符串之一:HTTP头连接与请求

HTTP_USER_AGENT

HTTP_REFERER

HTTP_COOKIE

HTTP_FORWARDED

HTTP_HOST

HTTP_PROXY_CONNECTION

HTTP_ACCEPT

REMOTE_ADDR

REMOTE_HOST

REMOTE_PORT

REMOTE_USER

REMOTE_IDENT

REQUEST_METHOD

SCRIPT_FILENAME

PATH_INFO

QUERY_STRING

AUTH_TYPE

服务器自身日期和时间其它DOCUMENT_ROOT SERVER_ADMIN SERVER_NAME

SERVER_ADDR

SERVER_PORT

SERVER_PROTOCOL SERVER_SOFTWARE TIME_YEAR

TIME_MON

TIME_DAY

TIME_HOUR

TIME_MIN

TIME_SEC

TIME_WDAY

TIME

API_VERSION

THE_REQUEST REQUEST_URI

REQUEST_FILENAME

IS_SUBREQ

HTTPS

这些变量都对应于类似命名的HTTP MIME头、Apache服务器的C变量、Unix系统中的struct tm字段,其中

的大多数在其他的手册或者CGI规范中都有说明。其中为mod_rewrite所特有的变量如下:IS_SUBREQ

如果正在处理的请求是一个子请求,它将包含字符串"true",否则就是"false"。模块为了解析URI中的附

加文件,可能会产生子请求。

API_VERSION

这是正在使用中的Apache模块API(服务器和模块之间内部接口)的版本,其定义位于include/ap_mmn.h中。

此模块API版本对应于正在使用的Apache的版本(比如在Apache 1.3.14的发行版中这个值是

19990320:10)。通常,对它感兴趣的是模块的开发者。

THE_REQUEST

这是由浏览器发送的完整的HTTP请求行(比如:"GET /index.html HTTP/1.1")。它不包含任何浏览

器发送的其它头信息。

REQUEST_URI

这是在HTTP请求行中所请求的资源(比如上述例子中的"/index.html")。

REQUEST_FILENAME

这是与请求相匹配的完整的本地文件系统的文件路径名。

HTTPS

如果连接使用了SSL/TLS,它将包含字符串"on",否则就是"off"(无论mod_ssl 是否已经加载,该变量都

可以安全的使用)。

其它注意事项:

1. SCRIPT_FILENAME和REQUEST_FILENAME包含的值是相同的——即Apache服务器内部的request_rec结

构中的filename字段。第一个就是大家都知道的CGI变量名,而第二个则是

REQUEST_URI(request_rec

结构中的uri字段)的一个副本。

2. 特殊形式:%{ENV:variable} ,其中的variable可以是任意环境变量。它是通过查找Apache内部结构或者(如

果没找到的话)由Apache服务器进程通过getenv()得到的。

3. 特殊形式:%{SSL:variable} ,其中的variable可以是一个SSL 环境变量的名字,无论mod_ssl 模块是否已

经加载都可以使用(未加载时为空字符串)。比如:%{SSL:SSL_CIPHER_USEKEYSIZE}将会被替换为128。

4. 特殊形式:%{HTTP:header} ,其中的header可以是任意HTTP MIME头的名称。它总是可以通过查找HTTP请求而得到。比如:%{HTTP:Proxy-Connection}将被替换为Proxy-Connection:HTTP头的值。

5. 预设形式:%{LA-U:variable} ,variable的最终值在执行一个内部(基于URL的)子请求后确定。当需要使用

一个目前未知但是会在之后的过程中设置的变量的时候,就可以使用这个方法。

例如,需要在服务器级配置(httpd.conf文件)中根据REMOTE_USER变量进行重写,就必须使用%{LA-

U:REMOTE_USER}。因为此变量是由URL重写(mod_rewrite)步骤之后的认证步骤设置的。但是另一方面,因为

mod_rewrite是通过API修正步骤来实现目录级(.htaccess文件)配置的,而认证步骤先于API修正步骤,所以

可以用%{REMOTE_USER}。

6. 预设形式:%{LA-F:variable} ,variable的最终值在执行一个内部(基于文件名的)子请求后确定。大多数情

况下和上述的LA-U是相同的。

CondPattern是条件模式,即一个应用于当前TestString实例的正则表达式。TestString将被首先计算,然后再与

CondPattern匹配。

注意:CondPattern是一个perl兼容的正则表达式,但是还有若干增补:

1. 可以在CondPattern串的开头使用'!'(惊叹号)来指定不匹配。

2. CondPatterns有若干特殊的变种。除了正则表达式的标准用法,还有下列用法:

? '

将CondPattern视为纯字符串,与TestString按词典顺序进行比较。如果TestString小于CondPattern则为

真。

? '>CondPattern'(词典顺序的大于)

将CondPattern视为纯字符串,与TestString按词典顺序进行比较。如果TestString大于CondPattern则为

真。

? '=CondPattern'(词典顺序的等于)

将CondPattern视为纯字符串,与TestString按词典顺序进行比较。如果TestString等于CondPattern(两个

字符串逐个字符地完全相等)则为真。如果CondPattern是""(两个双引号),则TestString 将与空字符串

进行比较。

? '-d'(目录)

将TestString视为一个路径名并测试它是否为一个存在的目录。

? '-f'(常规文件)

将TestString视为一个路径名并测试它是否为一个存在的常规文件。

? '-s'(非空的常规文件)

将TestString视为一个路径名并测试它是否为一个存在的、尺寸大于0的常规文件。

? '-l'(符号连接)

将TestString视为一个路径名并测试它是否为一个存在的符号连接。

? '-x'(可执行)

将TestString视为一个路径名并测试它是否为一个存在的、具有可执行权限的文件。该权限由操作系统检

测。

? '-F'(对子请求存在的文件)

检查TestString是否为一个有效的文件,而且可以在服务器当前的访问控制配置下被访问。它使用一个内

部子请求来做检查,由于会降低服务器的性能,所以请谨慎使用!

? '-U'(对子请求存在的URL)

检查TestString是否为一个有效的URL,而且可以在服务器当前的访问控制配置下被访问。它使用一个

内部子请求来做检查,由于会降低服务器的性能,所以请谨慎使用!

注意

所有这些测试都可以用惊叹号作前缀('!')以实现测试条件的反转。

3. 还可以在CondPattern之后追加特殊的标记[flags]作为RewriteCond指令的第三个参数。flags是一个以逗号

分隔的以下标记的列表:

? 'nocase|NC'(忽略大小写)

它使测试忽略大小写,扩展后的TestString和CondPattern中'A-Z' 和'a-z'是没有区别的。此标记仅用于

TestString和CondPattern的比较,而对文件系统和子请求的检查不起作用。

? 'ornext|OR'(或下一条件)

它以OR方式组合若干规则的条件,而不是隐含的AND。典型的例子如下:

RewriteCond %{REMOTE_HOST} ^host1.* [OR]

RewriteCond %{REMOTE_HOST} ^host2.* [OR]RewriteCond %{REMOTE_HOST} ^h ost3.*

RewriteRule ... 针对这3个主机的规则集 ...

如果不用这个标记,你就必须要书写三次条件/规则对。

举例

如果要按请求头中的"User-Agent:"重写一个站点的主页,可以这样写:

RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*

RewriteRule ^/$ /homepage.max.html [L]

RewriteCond %{HTTP_USER_AGENT} ^Lynx.*

RewriteRule ^/$ /homepage.min.html [L]

RewriteRule ^/$ /homepage.std.html [L]

解释:如果你使用的浏览器识别标志是'Mozilla',则你将得到内容最大化的主页(含有Frames 等等)。如果你使用的是(基于

终端的)Lynx,则你得到的是内容最小化的主页(不含table等等)。如果上述条件都不满足(使用的是其他浏览器),则你得到

的是一个标准的主页。

RewriteEngine 指令

说明打开或关闭运行时的重写引擎

语法RewriteEngine on|off

默认值RewriteEngine off

作用域server config, virtual host, directory, .htaccess

覆盖项FileInfo

状态扩展(E)

模块mod_rewrite

RewriteEngine指令打开或关闭运行时的重写引擎。如果设置为off,则此模块在运行时不执行任何重写操作,同时

也不更新SCRIPT_URx环境变量。

使用该指令可以使此模块无效,而无须注释所有的RewriteRule 指令!

注意:默认情况下,重写配置是不可继承的,也就是必须在每个需要使用重写引擎的虚拟主机中设置一个

RewriteEngine on指令。

RewriteLock 指令

说明设置RewriteMap 同步所使用的锁文件名

语法RewriteLock file-path

作用域server config

状态扩展(E)

模块mod_rewrite

此指令设置mod_rewrite为了和RewriteMap 程序通讯而使用的同步锁文件的名称。在需要使用重写映射表程序

(rewriting map-program)时,它必须是一个本地路径(而不能是一个NFS挂接设备)。对其他类型的重写映射表(rewriting

map),则无此要求。

RewriteLog 指令

说明设置重写引擎日志的文件名

语法RewriteLog file-path

作用域server config, virtual host

状态扩展(E)

模块mod_rewrite

RewriteLog指令设置用于记录所有重写操作的日志文件的名称。如果此文件名不以斜杠('/')开头,则它是相对于Server

Root的,此指令应该在每个服务器级别的配置中仅仅出现一次。如果要关闭对重写操作的记录,不推荐将Filename设为/dev/null ,因为,虽然重写引擎不能输出记录了,但仍会在内

部建立这个日志文件,这样会使服务器速度降低,而且对管理员毫无益处!要关闭日志,可以删除或注解RewriteLog

指令,或者使用"RewriteLogLevel 0"的设置

安全

参见安全方面的提示文档,其中讲述了为什么如果存放日志的目录对除了启动服务器以外的用户是可写的会带来安全隐患。

示例

RewriteLog "/usr/local/var/apache/logs/rewrite.log"

RewriteLogLevel 指令

说明设置重写日志的详细程度

语法RewriteLogLevel Level

默认值RewriteLogLevel 0

作用域server config, virtual host

状态扩展(E)

模块mod_rewrite

RewriteLogLevel指令设置重写引擎日志的详细程度的级别。0(默认级别)意味着不记录,而9或更大的值意味着记录

所有操作。

要关闭重写引擎日志,可以简单地将Level设为0,以关闭所有重写操作的记录。

较高的Level值会使Apache服务器速度急剧下降!大于2的Level值只用于调试目的!

示例

RewriteLogLevel 3

RewriteMap 指令

说明定义用于关键词查找的映射函数

语法RewriteMap MapName MapType:MapSource

作用域server config, virtual host

状态扩展(E)

模块mod_rewrite

兼容性Apache 2.0.41 及以后的版本中可以使用不同的dbm类型

RewriteMap指令定义了一个映射表(Rewriting Map),映射函数将使用该表来查找关键字然后插入/替换字段。此查找操作

的源可以是多种类型。

MapName是映射表的名称,指定了一个映射函数,用于重写规则的字符串替换,它可以是下列形式之一:

${MapName:LookupKey}

${MapName:LookupKey|DefaultValue}

如果使用了这样的形式,则会在MapName中查找关键词LookupKey。如果找到了,则被替换成SubstValue;如果没有找

到,则被替换成DefaultValue,如果没有指定DefaultValue,则被替换成空字符串。

例如,你可能定义这样一个RewriteMap:

RewriteMap examplemap txt:/path/to/file/map.txt

然后你就可以像下面这样在RewriteRule中使用该映射:

RewriteRule ^/ex/(.*) ${examplemap:$1}

可以使用下列MapType和MapSource的组合:

? 标准纯文本

MapType: txt, MapSource: 有效的Unix文件系统文件名这是重写映射表的标准形式。MapSource是一个纯文本文件,包含空行、注释行(以字符'#'打头),以及每行一个

的替换对,如下所示:

MatchingKey SubstValue

例子

## map.txt -- rewriting map

Ralf.S.Engelschall rse # Bastard Operator From Hell

Mr.Joe.Average joe # Mr. Average

RewriteMap real-to-user txt:/path/to/file/map.txt

? 随机纯文本

MapType: rnd, MapSource: 有效的Unix文件系统文件名

这个与上述的标准纯文本很相似,但它有一个特殊的后处理特性:查找完毕后,会解析其中包含的"|" 符号(含义

为"或")。也就是说,会随机地选择其中之一作为返回值。虽然这看似毫无意义,但设计它的意图是在一个查找

值是服务器名称的反向代理环境中实现负载平衡。

例子

映射文件

## map.txt -- rewriting map

static www1|www2|www3|www4

dynamic www5|www6

配置指令

RewriteMap servers rnd:/path/to/file/map.txt

RewriteRule ^/(.*/.(png|gif|jpg)) http://${servers:static}/$1 [NC,P,L]

RewriteRule ^/(.*) http://${servers:dynamic}/$1 [P,L]

? 散列文件

MapType: dbm[=type], MapSource: 有效的Unix文件系统文件名

这里的源是一个二进制格式的DBM文件,包含了与纯文本相同的内容,但是因为它有优化了的特殊表现形式,

使它的查找速度明显快得多。此type可以是sdbm, gdbm, ndbm, db(由编译时配置决定)。如果省略type,则使用

编译时选择的缺省值。你可以使用任何DBM工具或者下列Perl脚本来创建这个文件,但必须保证DBM的类型

正确。建立NDBM文件的例子如下:

#!/path/to/bin/perl

##

## txt2dbm -- 将txt 映射表转换为dbm 格式

##

use NDBM_File;

use Fcntl;

($txtmap, $dbmmap) = @ARGV;

open(TXT, "<$txtmap") or die "Couldn't open $txtmap!/n";

tie (%DB, 'NDBM_File', $dbmmap,O_RDWR|O_TRUNC|O_CREAT, 0644)

or die "Couldn't create $dbmmap!/n";

while () {

next if (/^/s*#/ or /^/s*$/);

$DB{$1} = $2 if (/^/s*(/S+)/s+(/S+)/);

}

untie %DB;

close(TXT);$ txt2dbm map.txt map.db

? 内部函数

MapType: int, MapSource: Apache内部函数

这里的源是一个Apache的内部函数。目前,还不能由你自己建立,只能使用下列已经存在的函数:

? toupper:

转换查找关键词为大写

? tolower:

转换查找关键词为小写

? escape:

转换查找关键词中的特殊字符为十六进制编码

? unescape:

转换查找关键词中的十六进制编码为特殊字符

? 外部的重写程序

MapType: prg, MapSource: 有效的Unix文件系统文件名

这里的源是一个程序,而不是一个映射表文件。程序设计语言可以随意选择,但最终结果必须是可执行的(或者是

目标代码,或者是首行为'#!/path/to/interpreter'的脚本)。

此程序仅在Apache服务器启动时启动一次,随后通过stdin和stdout文件句柄与重写引擎交互。对每个映

射函数的查找操作,它从stdin接收以回车结束的查找关键词,然后把查找的结果以回车结束反馈到

stdout,如果查找失败,则返回四个字符的字符串"NULL"(对给定的关键词没有对应的值)。此程序的最简单形

式是一个1:1的映射(即:key == value),例如:

#!/usr/bin/perl

$| = 1;

while () {

# ...在这里放置转换和查找...

print $_;

}

但是必须注意:

? "简单就是美"(KISS: Keep it simple, stupid!)。此程序的崩溃会直接导致Apache服务器的崩溃。

? 绝不要对stdout做I/O缓冲(一个常见的错误),它会导致死循环!所以上述例子中才会使用"$|=1"来

apache开启伪静态

如果需要开启伪静态支持: 打开apache的配置文件httpd.conf 1.把#LoadModule rewrite_module modules/mod_rewrite.so前面的#去掉。 2.找到 # # AllowOverride controls what directives may be placed in .htaccess files. # It can be “All”, “None”, or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None 把 AllowOverride None 改为 AllowOverride All 最后就是重启一下apache服务器使配置生效,这样就支持.htaccess文件了 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” 区域,在最后一行加入“LoadM odule rewrite_module modules/mod_rewrite.so”(必选独占一行),然后重启apache 服务器即可。 2.让apache服务器支持.htaccess 修改httpd.conf文件 Options FollowSymLinks AllowOverride None 改为 Options FollowSymLinks AllowOverride All 注意:除了要设置上面的地方以后,还得设置一下下面这个(网上很多资料都没有讲到这一块),否则你将会配制失败,把 DocumentRoot 后面的参数改为你本地网站的目录例如你网站的根目录为 D:/web/https://www.360docs.net/doc/a118523125.html, 则得设置为DocumentRoot "D:/web/https://www.360docs.net/doc/a118523125.html," 也就是修改当前目录 此步骤设置好后也得重启apache服务器才能生效 3.建立.htaccess 文件 新建 htaccess.txt 用记事本打开,点击文件–另存为,在文件名窗口输入”.htaccess”,然后点击保存。此文件得保存在网站的根目录

apache两种工作模式

[url=https://www.360docs.net/doc/a118523125.html,/web/host.php][/url] 刚接触这两个配置时很迷糊,全部开启或全部注释没有几多变化。今天搜索到这么一篇讲得还不错的文章,看了几篇,还是不能完全记住,做一个收藏。 空闲子进程:是指没有正在处理请求的子进程。 1、prefork.c模块(一个非线程型的、预派生的MPM) prefork MPM 使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下将比worker更有优势:他能够使用那些没有处理好线程安全的第三方模块,并且对于那些线程调试困难的平台而言,他也更容易调试一些。 ServerLimit 20000 StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 1000 MaxRequestsPerChild 0 ServerLimit 2000 //默认的MaxClient最大是256个线程,假如想配置更大的值,就的加上ServerLimit这个参数。20000是ServerLimit这个参数的最大值。假如需要更大,则必须编译apache,此前都是无需重新编译Apache。 生效前提:必须放在其他指令的前面 StartServers 5 //指定服务器启动时建立的子进程数量,prefork默认为5。 MinSpareServers 5 //指定空闲子进程的最小数量,默认为5。假如当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。此参数不要设的太大。MaxSpareServers 10 //配置空闲子进程的最大数量,默认为10。假如当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。此参数不要设的太大。假如您将该指令的值配置为比MinSpareServers小,Apache将会自动将其修改成"MinSpareServers+1"。MaxClients 256 //限定同一时间客户端最大接入请求的数量(单个进程并发线程数),默认为256。任何超过MaxClients限制的请求都将进入等候队列,一旦一个链接被释放,队列中的请求将得到服务。要增大这个值,您必须同时增大ServerLimit 。 MaxRequestsPerChild 10000 //每个子进程在其生存期内允许伺服的最大请求数量,默认为10000.到达MaxRequestsPerChild的限制后,子进程将会结束。假如MaxRequestsPerChild为"0",子进程将永远不会结束。 将MaxRequestsPerChild配置成非零值有两个好处: 1.能够防止(偶然的)内存泄漏无限进行,从而耗尽内存。 2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。 工作方式: 一个单独的控制进程(父进程)负责产生子进程,这些子进程用于监听请求并作出应答。Apache总是试图保持一些备用的(spare)或是空闲的子进程用于迎接即将到来的请求。

dedecms全站伪静态的实现方法及注意事项

成都SEO告诉你,用系统自带生成静态的麻烦事情很多,特别是文章多了,更新一点东西之类的就很是麻烦。所以成都SEO建议,大家如果能用伪静态就都用伪静态吧!一劳永逸的事情,以后不用再给大批量的更新而烦恼了。在此分享一下DEDECMS实现频道|列表页|文章页|TAG伪静态的方法,希望朋友们在有需要的时候能用上吧! 开启伪静态的前提条件 保证你的空间或服务器支持伪静态即URL重写 开启DedeCms伪静态 开启伪静态的方法:后台--》系统--》核心设置找到:是否使用伪静态:选择是确定保存。 栏目和文章发布设置 栏目列表选项:选择使用动态页发布选项:选择仅动态浏览 DEDECMS全站伪静态方法 首页伪静态 把站点根目录下index.html删除,以后不更新主页HTML即可,当然你也可以选择不使用动态首页。 频道、列表、文章伪静态 主要通过修改GetFileName()、GetTypeUrl()这两个函数实现。DedeCms V5.3、DedeCms V5.5和DedeCms V5.6版本,打开/include/channelunit.func.php进行修改。注意:DedeCms V5.7,此文件路径更改了,你打开/include/helpers/channelunit.helper.php即可。 a.将GetFileName()中的如下代码: //动态文章 if($cfg_rewrite == 'Y') { return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html'; } 替换为 //动态文章 if($cfg_rewrite == 'Y') { return "/archives/view-".$aid.'-1.html'; } 将文章页默认的/plus/view-1-1.html链接格式改为/archives/view-1-1.html,这个随个人喜欢,不作更改也行。 b.将GetTypeUrl()中的如下代码: //动态 $reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid; 替换为 //动态 $reurl = "/category/list-".$typeid.".html"; 这步必须修改,即让你的频道或是列表页URL变更为/category/list-1.html形式。 列表分页伪静态 打开/include/arc.listview.class.php,找到获取动态的分页列表GetPageListDM()函数末尾

动态、静态、伪静态三种网址模式的优化设置方法

一、静态模式的网址 首先,静态网址具有的绝对优势是其明晰,/product/nokia/n95.html和/about.html可以很容易被理解,从而在搜索结果中可能点击量相对较高。 其次,静态网址未必就是最好的网址形式,上述**址中说到,**址能够告诉Google一些可以识别的参数,而静态网址如果文档布置不够恰当(如:过于扁平化,将HTML文档全放在根目录下)及其他因素,反而不如静态网址为Google提供的参考信息丰富。 最后,樂思蜀觉得Google此文中是否有其隐藏含义?“更新此种类型网址的页面会比较耗费时间,尤其是当信息量增长很快时,因为每一个单独的页面都必须更改编译代码。”虽然所说的是网站,但在Google系统中是否同样存在这样的问题呢? 二、动态模式的网址 首先是动态页面的优化方法。哪些页面更新最勤快呢?肯定是首页和最新相关类的页面了。而对于首页来说,如果生成静态的话,那么就会产生两个网址,一个是原始网址,一个是生成后的网址。而且原始网址是不可能去掉的,如果把首页生成静态,那么就把整站的权重多分一个页面了,权重低的时候自然不会察觉有什么问题,但是到了一定的权重的时候,这样的区别就很容易显现出来了。所以,首页一般使用动态的比较好,因为用户和蜘蛛都经常性的访问首页,如果首页整天都自动生成静态的话,那么就会让蜘蛛重复的抓取多次,这样就会形成网站有多个快照的情况出现了。而一些相关的首页推荐和自动推荐也应该使用动态的,因为这样可以让用户实时的知道情况,而不会产生缓冲现象。至于优化方法,笔者觉得动态页面的优化更为简单,因为动态页面会自动产生,自然自己无法确定其确定网址,所以,常用的优化方法都适合动态页面的优化。虽然动态页面存在的漏洞风险比较高,但是结合其空间的安全性,这点还可以解决掉的。 三、伪静态模式的网址 伪静态是在静态和**址之间繁衍的一种独特的网址模式,一般要产生伪静态的网址时,需要对**址的重写规则,而搜索引挚不会把伪静态网址当成是独立的HMTL文档,尽管它是以HTML后缀名结尾的,因为伪静态只是让搜索引挚把动态看成静态而已,相对于**址的特殊符号减少。而咱们在对伪静态网址作优化时,需要注意的是,把重心放在去除冗余参数、规范URL、尽可能的避免重复页上,在写伪静态规则时,应保留有价值的参数,不要将有价值的参数全部精简掉,如前面例子中的news.php?lang=cn&class=1&id=2 最好重写为news-cn-class1-id2.html,而不是过份精简重写为news-2.html。所以说,在优化伪静态网址时,需要注意把握好那个度就行了,顺其自然而非是刻意为之才是最好的。(文章转自:长沙网站建设https://www.360docs.net/doc/a118523125.html, 长沙SEO https://www.360docs.net/doc/a118523125.html,,转载请注明出处,谢谢)

伪静态_URLRewrite实例解析

Url Rewrite Filter实现页面伪静态化,简单实例及步骤1.首先新建一个Web Project 本例把它命名为:UrlRewrite,在创建的时候,选择勾选“Add JSTL libraries to WEB-INF/lib folder ”(注:因为项目中会用到jstl 核心标签库),然后再把urlrewrite-2.6.0.jar 导入到项目Bulid Path路径下,最后再加入struts框架。 2.配置web.xml文件 把如下代码加入到web.xml配置文件中,更多的配置可参考官方文档: UrlRewriteFilter org.tuckey.web.filters.urlrewrite.UrlRewriteFilter logLevel WARN UrlRewriteFilter /* 3.新增urlrewrite.xml文件 ^/([0-9]+).html$ /index.jsp?id=$1 在WEB-INF目录下新建一个Url Rewrite Filter的规则配置文件,默认命名为

伪静态在IIS和Apache下的区别

htaccess在IIS和Apache下的区别 ^t_(\d+).html$ t.php?id=$1 这个在apache下面可以,但在iis下的isapi_rewrite里可能就不对了 要改成 ^(.*)/t_(\d+).html$ $1/t.php\?id=$2 加了/,和对?进行了转义 Apache下 RewriteRule ^company/show_([0-9]+).html$ company.php?uid=$1 [L] //正确,可以不转义. ? RewriteRule ^company/show_([0-9]+)\.html$ company.php\?uid=$1 [L] //正确 RewriteRule ^/company/show_([0-9]+)\.html$ /company.php\?uid=$1 [L] //错误加了/就不行了 IIS下 RewriteRule ^(.*)/resume/([0-9]+)/show\.html$ /$1/person.php?pid=$2 [L] // 正确 RewriteRule ^(.*)/resume/([0-9]+)/show.html$ /$1/person.php?pid=$2 [L] //错误,.?必须转义RewriteRule /resume/([0-9]+)/show\.html$ /person.php\?pid=$1 [L] // 正确 RewriteRule resume/([0-9]+)/show\.html$ person.php\?pid=$1 [L] // 错误,必须加/ RewriteRule /resume/([0-9]+)/show\.html$ /person.php?pid=$1 [L] // 错误,?必须转义 总结 iis下必须加 /,.?必须转义 apache下不能加/ 附上htaccess的标记说明 flags ‘redirect|R [=code]‘ (强制重定向 redirect) 以http://thishost[:thisport]/(使新的URL成为一个URI) 为前缀的Substitution可以强制性执行一个外部重定向。如果code没有指定,则产生一个HTTP响应代码302(临时性移动)。如果需要使用在300-400范围内的其他响应代码,只需在此指定这个数值即可,另外,还可以使用下列符号名称之一: temp (默认的), permanent, seeother. 用它可以把规范化的URL反馈给客户端,如, 重写“/~”为“/u/”,或对/u/user加上斜杠,等等。注意: 在使用这个标记时,必须确保该替换字段是一个有效的URL! 否则,它会指向一个无效的位置! 并且要记住,此标记本身只是对URL加上 http://thishost[:thisport]/的前缀,重写操作仍然会继续。通常,你会希望停止重写操作而立即重定向,则还需要使用’L’标记. ‘forbidden|F’ (强制URL为被禁止的 forbidden) 强制当前URL为被禁止的,即,立即反馈一个HTTP响应代码403(被禁止的)。使用这个标记,可以链接若干RewriteConds以有条件地阻塞某些URL。 ‘gone|G’ (强制URL为已废弃的 gone) 强制当前URL为已废弃的,即,立即反馈一个HTTP响应代码410(已废弃的)。使用这个标记,可以标明页面已经被废弃而不存在了. ‘proxy|P’ (强制为代理 proxy)

nginx伪静态

设为首页 收藏本站 快捷导航 首 页论 坛下 载手 册演 示客 服主机推荐我来出份力分站演示 FineCMS 最新研发动态 通过这个窗口,关注跟踪我们的研发进展我来给官方反馈BUG FineCMS 正式版隆重发布 快速建立网站 帮助网站实现一站式服务 下载 — 安装 — 手册下载 — 帮助中心 模板函数变量 自定义URL 地址详细教程 模板标签介绍 FineCMS 万能标签list 功能介绍表单使用介绍 模型创建指南 推荐虚拟主机 热搜:教程 论 坛 使用交流 使用交流 搞了一下午的nginx 僞靜態,現在還沒搞得 ... 返回列表 电梯直达 楼主hlbejy | |设置 |消息 |提醒 |退出积分: 52 |用户组: 注册会员 请输入搜索内容 帖子搜索 查看: 92|回复: 4 搞了一下午的nginx僞靜態,現在還沒搞得 [复制链接] 古易子 发表于 2012-8-4 19:36:52 |只看该作者 |倒序浏览 這東東,看來要慢慢搞才行。

发消息 分享到: QQ 空间 腾讯微博 腾讯朋友 收藏1 回复 举报 发消息 沙发 回复 举报 6主题0好友 88积分 注册会员 民间偏方 https://www.360docs.net/doc/a118523125.html, 忠忠美女 https://www.360docs.net/doc/a118523125.html, “人人为我,我为人人”,人人为FineCMS 出一份力!dayrui 167主题2好友3367积分 管理员 发表于 2012-8-4 20:12:16 |只看该作者 参考zend 框架配置方法 技术上问题或者使用方面不懂的地方(HTML 知识就免了),单击此处QQ 联系我~~ “人人为我,我为人人”,人人为FineCMS 出一份力!

CentOS6.0+apache2.4+php5.4.7+mysql5.5.27

CentOS6.0+apache2.4+php5.4.7+mysql5.5.27 一、安装前准备 1、安装编译工具及所需要库文件 yum install make apr* autoconf automake curl-devel gcc gcc-c++ gtk+-devel zlib-devel openssl openssl-devel pcre-devel gd gettext gettext-devel kernel keyutils patch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel ppl cloog-ppl keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel libXpm* freetype freetype-devel freetype* fontconfig fontconfig-devel libjpeg* libpng* php-common php-gd ncurses* libtool* libxml2 libxml2-devel 2、下载软件包(统一下载到/usr/local/src ) wget https://www.360docs.net/doc/a118523125.html,/Downloads/MySQL-5.5/mysql-5.5.27.tar.gz wget https://www.360docs.net/doc/a118523125.html,/files/v2.8/cmake-2.8.8.tar.gz wget https://www.360docs.net/doc/a118523125.html,/apache//httpd/httpd-2.4.3.tar.gz wget https://www.360docs.net/doc/a118523125.html,/apache//apr/apr-1.4.6.tar.gz # Apache库文件 wget https://www.360docs.net/doc/a118523125.html,/apache//apr/apr-util-1.4.1.tar.gz # Apache库文件 wget https://www.360docs.net/doc/a118523125.html,/distributions/php-5.4.7.tar.gz wget https://www.360docs.net/doc/a118523125.html,/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz #PHPlibmcrypt模块 wget ftp://https://www.360docs.net/doc/a118523125.html,/pub/software/programming/pcre/pcre-8.31.tar.gz 二、安装mysql 5.5.27 1、安装cmake # cd /usr/local/src # tar zxf cmake-2.8.8.tar.gz # cd cmake-2.8.8 # ./configure # make # make install 2、开始安装mysql # groupadd mysql # useradd -g mysql mysql -s /bin/false // 创建用户mysql并加入到mysql组,不允许mysql 用户直接登陆系统 # mkdir -p /data/mysql // 创建mysql 数据库存放目录 # chown -R mysql.mysql /data/mysql // 设置mysql 数据库权限 # mkdir -p /usr/local/mysql // 创建mysql 安装目录 # cd /usr/local/src # tar zxf mysql-5.5.27.tar.gz # cd mysql-5.5.27 # cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc # make

通过 Apache 配置 Rewrite 支持 .htaccess

【转】通过 Apache 配置 Rewrite 支持 .htaccess 2011-03-01 14:16 转载自分享 最终编辑ruhaole 1.首先确定您使用的 Apache 版本,及是否加载了 mod_rewrite 模块。及是否加载了 mod_rewrite 模块 . mod_rewrite 的是一个 Apache 模块,可使服务器操纵请求的网址。根据一系列规则对传入的网址进行检查,规则中包含一个正则表达式来检测特定的格式。如果在地址中发现了一个格式,并且满足适当的条件,该格式就会被一个替代的字符串或者是动作取代。 Apache 1.x 的用户请检查 conf/httpd.conf 中是否存在如下两段代码: 清单 1. Apache 1.x 的加载模块代码 LoadModule rewrite_module libexec/mod_rewrite.so AddModule mod_rewrite.c Apache 2.x 的用户请检查 conf/httpd.conf 中是否存在如下一段代码: 清单 2. Apache 2.x 的加载模块代码 LoadModule rewrite_module modules/mod_rewrite.so 如果存在,那么在配置文件(通常就是 conf/httpd.conf)中加入如下代码。此时请务必注意,如果网站使用通过虚拟主机来定义,请务必加到虚拟主机配置,即 中去,如果加在虚拟主机配置外部将可能无法使用,改好后将 Apache 重启。稍后再解释这段代码的意思 Apache配置: 支持httpd.conf 配置和目录 .htaccess配置 启用rewrite # LoadModule rewrite_module modules/mod_rewrite.so 去除前面的 # LoadModule rewrite_module modules/mod_rewrite.so 启用.htaccess AllowOverride None 修改为:AllowOverride All ----------------------------------------------------------

新云NewAsp4程序伪静态规则设置(最新完整版)

################################################### ######################################## ###008博学网规则### ################################################### ######################################## RewriteRule /([A-Za-z0-9_-]+)/(\d+)\.html /$1/show\.asp\?id=$2 [N,I] RewriteRule /([A-Za-z0-9_-]+)/(\d+)_(\d+)\.html /$1/show\.asp\?id=$2&page=$3 [N,I] RewriteRule /([A-Za-z0-9_-]+)/list_(\d+)_(\d+)\.html /$1/list\.asp\?page=$2&classid=$3 [N,I] RewriteRule /([A-Za-z0-9_-]+)/special-(\d+)-(\d+)\.html /$1/special\.asp\?page=$2&specialid=$3 [N,I] RewriteRule /([A-Za-z0-9_-]+)/newlist-(\d+)\.html /$1/shownew\.asp\?page=$2 [N,I] RewriteRule /([A-Za-z0-9_-]+)/bestlist-(\d+)\.html /$1/showbest\.asp\?page=$2 [N,I] RewriteRule /([A-Za-z0-9_-]+)/hotlist-(\d+)\.html /$1/showhot\.asp\?page=$2 [N,I] RewriteRule /([A-Za-z0-9_-]+)/ABC_([A-Za-z0-9_-]+)_1\.html /$1/showabc\.asp\?q=$2 [N,I] RewriteRule /([A-Za-z0-9_-]+)/tag-(.*)-(\d+)\.html /$1/tag\.asp\?name=$2&page=$3 [N,I] RewriteRule /([A-Za-z0-9_-]+)/tag-(\d+)\.html /$1/tag\.asp\?page=$2 [N,I] RewriteRule /([A-Za-z0-9_-]+)/dl(\d+)\.html /$1/softdown\.asp\?softid=$2 [N,I] RewriteRule /([A-Za-z0-9_-]+)/d(\d+)\.html /$1/down\.asp\?id=$2 [N,I] RewriteRule /([A-Za-z0-9_-]+)/type-(.*)-(\d+)\.html /$1/showtype\.asp\?type=$2&page=$3 [N,I] RewriteRule /([A-Za-z0-9_-]+)/comment-(\d+)-(\d+)\.html /$1/comment\.asp\?id=$2&page=$3 [N,I] RewriteRule /([A-Za-z0-9_-]+)/zt(\d+)\.html /$1/downcopy\.asp\?id=$2 [N,I] RewriteRule /([A-Za-z0-9_-]+)/zt-(\d+)\.html /$1/downcopy\.asp\?id=$2 [N,I]

IIS设置伪静态方法

Windows服务器下用IIS Rewrite组件为IIS设置伪静态方法 1、将下载的IIS Rewrite 组件解压,放到适当的目录(如 C:Rewrite)下,IIS Rewrite 组件下载 https://www.360docs.net/doc/a118523125.html,/download-isapi_rewrite.htm , IIS Rewrite 简化版组件下载 https://www.360docs.net/doc/a118523125.html,/soft/71446.htm ,下载下来解压后不用安装拷到目 1、将下载的IIS Rewrite 组件解压,放到适当的目录(如 C:Rewrite)下,IIS Rewrite 组件下载https://www.360docs.net/doc/a118523125.html,/download-isapi_rewrite.htm,IIS Rewrite 简化版组件下载https://www.360docs.net/doc/a118523125.html,/soft/71446.htm,下载下来解压后不用安装拷到目录下设置好即可使用。 注:IIS Rewrite简单使用方法介绍:一个功能强大的URL处理引擎,功能和Apache的 mod_Rewrite类似,这个是For IIS版本可以把像list.asp?id=234 这样的链接映射成 list/234.html 这样就有利于在GG中的排名 完全版(Full)与简化版(Lite)的最大的区别在于可以让每个站点自定义URL重写规则(Rewrite Rule),也就是只要将写好的httpd.ini放在站点根目录,就能使用了。 安装说明:下载后可以解压出 ISAPI_Rewrite.dll ,httpd.ini 这两个文件放到某个文件夹下面,然后在 IIS 站点属性的 ISAPI 中加载 ISAPI_Rewrite.dll 就可以了, httpd.ini 是配置文件里面有例子。如果加载不成功的话请给 ISAPI_Rewrite.dll 安全属性为完全。 2、在“IIS管理器”里选择网站,右键,属性。

《HongCMS开发者手册》二次开发指南

《HongCMS开发者手册》--二次开发指南 模板语法参阅:/bbs/?thread-index-fid-1-tid-19.htm 一、前言: 说实在的,很怕写文档,特别是这种开发文档,无法知道别人需要什么样或者说什么程度的描述,自己高兴的事别人未必开心。所以,这个文档总的想法是将重点介绍清楚,让用户了解系统脉络,细枝末节的技术google就行了。 前些日子因参与其它公司的项目,研究了些PHP开发框架,如CI, ThinkPHP等这些,觉得这些小型框架对我来说很不爽,因为本人一直 喜欢4S的开发理念,即:Safe, Simple, Small, Stable (安全,简单,小巧,稳定),不刻意追求大而全的东西,认为简单是最美的。 这和性格有关,也很难改变。就拿CI来说吧,前台游客只要一进入网站,就有至少1个数据库写入及1个session生成,一个session在服务器就要写入一个文件,试想如果网站同时来了1万个用户访问,文件IO开销巨大,说得不好听点,服务器可能就死球了。对于框架,业内一直有这么一句话:学之者生,用之者死。本人觉得这句话很值得琢磨一下。 如今没有几个公司不要求程序员有MVC的开发理念,MVC确实有好处,本人也喜欢,但也不去刻意追求. 当然也有反对MVC的, 包括PHP创始人。HongCMS开发中有V和C,M基本没有,因为不需要或者说使用M编程反而累了,但完全可以使用Model,系统框架

已经为它设计好了,程序包models/目录下有实例。特别是后台admin/models/目录下的admin.php, 它就是后台用户(管理员)的模型。说白了,模型就是一些类啦。 HongCMS系统框架APP.php非常小巧,仅5K大小,再加上XTpl超小模板引擎,HongCMS核心非常小巧、快速和高效。有基础的朋友,如果对HongCMS进行二次开发,或是参考其中的理念,足可以开发出大型系统来。 这些思想,加上多年做双语企业网站的经验,同时有朋友要我开发一个中英双语的小型企业网站,于是HongCMS出生了。对于一些从事网站开发的朋友来说,我想HongCMS更适合成为你的工具,像很多使用weenCompany的用户能赚钱一样,使用HongCMS当然能赚钱,同时在技术上会有更大的提高。对于一般用户,HongCMS是中英文网站系统,对于懂程序的朋友来说,它是小型开发框架,开发由你。 二、目录布局与重要文件介绍 1. 根目录下的几个文件 .htaccess: 此文件是apache服务器下的伪静态规则文件,另外此文件还限制了浏览器可以访问或进入哪个目录或文件夹,增强了系统安全性。如果你添加了一个目录如blog,这个目录下独立安装了另一个blog系统,那么需要修改htaccess文件,以便允许浏览器访问blog目录。 index.php: HongCMS是单入口系统,所有前台页面的访问均从index.php进入。

PHP5.4.6配置教程(Win7+apache2.4.3+phpMyAdmin3.5.2.2+ZF2.0.0)

PHP5.4.6配置教程 (Win7+Apache2.4.3+phpMyAdmin3.5.2.2+ZF2.0.0) By 霡霂(盟军特战队) 我的微博: https://www.360docs.net/doc/a118523125.html,/maimuf https://www.360docs.net/doc/a118523125.html,/maimuf(你懂的,点击收听。) 解释:原来的那一份被我删除了,这一份是我略微修改的版本。 删除的原因:由于使用百度的文档更新功能后,文档管理混乱,被我误删了,无论如何都无法恢复数据,只能重新上传。对于百度文库的开发团队真是失望,本人推荐使用新浪爱问和新浪微盘。 系统环境:Windows 7 PHP版本:PHP5.4.6(推荐而已) Apache2.4.3(with openssl 1.0.1c,Zip包安装) MySQL(GA)5.5.7 phpMyAdmin3.5.2.2 Zend Framework2.0.0(新版本,新特性,新用法) Zend Studio 9.0.X 为不同的项目配置不同的虚拟主机,为phpMyAdmin配置虚拟主机 PS: 另附 Zend Server便捷开发配置(预告) Zend Studio9.0.X相关内容。 PHP中文配置教程,新颖、前卫,进取,与时俱进。 声明: 1、本文所有软件安装配置均由本人,亲自,多次测试。力求做到版本兼容。 2、本教程的创作区别于现有国产PHP书籍和教材写作时,在老版本书籍中盲目东摘西抄,不知对错和所以然的不负责任的恶心行为。 3、教程中所有配置命令,均来自于Apache手册、Zend Server(CE)自动配置文件、或Fedora 17下PHP环境配置。但是经过测试,绝对为Windows 7开发环境定制。 4、本教程版权所有,严禁任何人以任何形式进行摘抄和用于商业出版。违者必追究法律责任。欢迎出版社洽谈,出版书籍事宜。 5、任何网络转载,请注明出处。违者追究责任。 6、本文,仅在百度文库、百度Fedora吧、以及新浪共享同步更新,敬请期待。 7、阅读时,请认真仔细,切忌心焦气躁。 8、本文请勿用于生产环境,任何未经过专门优化的运行环境都是危险的。

服务器伪静态配置指导

服务器伪静态配置指导 安装步骤完成之后,需要进行MAGAPP站点的伪静态配置。 根据服务器类型的不同,基本可以分为四种配置伪静态的方式:1.IIS6.0以前的版本2.IIS7.0 以及之后的版本3.apache 4.nginx。需要安装伪静态插件ISAPI_rewrite,这个插件不同的版本对伪静态文件的要求也不一样,ISAPI_rewrite3以前的版本只支持httd.ini伪静态文件MAGAPP 的伪静态配置文件可以在https://www.360docs.net/doc/a118523125.html,/upload/httpd.ini.zip下载。ISAPI_rewrite3开始支持.htaccess伪静态文件。MAGAPP的伪静态配置文件可以在https://www.360docs.net/doc/a118523125.html,/upload/.htaccess.zip下载。建议安装ISAPI_Rewrite3。如果根据分类配置完.htaccess或者httd.ini文件之后依然无效,请先查看下这两个文件是否有读写权限。 一.IIS 6.0以及之前的版本 安装ISAPI_rewrite组件组件之后,找到安装目录内的ISAPI_Rewrite.dll文件,注意给ISAPI_Rewrite的安装目录network service 的读权限或者Users的读权限,否则或出现无法加载ISAPI_Rewrite 的错误。 打开IIS 右击magapp的站点,选择属性

选择"ISAPI 筛选器"选项卡,点击"添加",弹出"添加/编辑筛选器属性","筛选器名称"写上ISAPI_Rewrite,这个可以自定义;"可执行文件"这里,通过"浏览"找到伪静态组件安装目录下的ISAPI_Rewrite.dll文件即可 一路确定之后,我们重启下IIS管理器,之后再次打开网站属性的"ISAPI 筛选器",看下是不是刚刚添加的ISAPI_Rewrite变为绿色向上的箭头,这样的话伪静态就配置成功了。

Win7_IIS伪静态配置

第一部: 从如下地址中下载URLRewriter组件组件: 官方下载地址: https://www.360docs.net/doc/a118523125.html,/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797 cf/MSDNURLRewriting.msi 第二部:在网站项目中添加URLRewriter程序集的引用。 第三部:配置webconfig文件: 1。在与节点中间加入如下配置:

2。在 之间加入 3。在加入 。4。配置伪静态的语法:在之间加入 节点。在之间加入伪静态规则: ~/xxxx/view(.[\d]*)\.html ~/xxxx/view.aspx?id=$1 ~/yyyy/(.[\d]*)/view.html ~/yyyy/view.aspx?id=$1 第四部:配置IIS7.5 或IIS7.0

使用Microsoft URL Rewrite Module for IIS 7.0修改WEB.CONFIG即可实现.HTML伪静态

使用Microsoft URL Rewrite Module for IIS 7.0修改WEB.CONFIG即可实现*.HTML伪静态无需修改应用程序映射 在IIS5和IIS6时代,我们使用URL REWRITING可实现URL重写,使得WEB程序实现伪静态,但默认情况下只能实现.ASPX的伪静态,如果要实现伪静态*.HTML的页面,需要将ISAPI 里面的*.HTML应用程序映射改为.NET的ISAPI。但在IIS 7时代,这一切已经变得非常简单了,您在WEB.CONFIG中就可以管理这一切了。 在服务器上安装好Microsoft URL Rewrite Module,具体下载地址如下: Microsoft URL Rewrite Module for IIS 7.0 (x86) 下载地址:https://www.360docs.net/doc/a118523125.html,/downloads/default.aspx?tabid=34&g=6&i=1691 Microsoft URL Rewrite Module for IIS 7.0 (x64) 下载地址:https://www.360docs.net/doc/a118523125.html,/downloads/default.aspx?tabid=34&g=6&i=1692 安装好之后如图:

可以直接在IIS 7里面进行添加重写规则,也可以直接在WEB.CONFIG中设置: 然后,访问/article/366.html 就是访问/article.aspx?newid=366的结果了,无需像以前IIS 6时代一样去添加*.HTML的ISAPI的应用程序映射了。(这对使用虚拟主机的站点来说可是个 福音,不用再叫管理员去帮你加设置了,自己在WEB.CONFIG中可以设置这一切了)

相关文档
最新文档