快速业务通道

Apache安装配置和虚拟主机配置教程

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-16
特殊含义而视 之为普通字符)。 比如,Substitution可以用"\___FCKpd___27quot;来包含一个美元符号,以避免mod_rewrite把它视为反向引用。

(2)环境变量

此模块会跟踪两个额外的(非标准)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=http://en1.engelschall.com/u/rse/

(3)rewrite的指令

rewrite的指令有很多比如RewriteBase 指令

RewriteBase指令显式地设置了目录级重写的基准URL。在下文中,你将看到RewriteRule可以用于目录级的配置文件中(.htaccess)并在局部范围内起作用,即规则实际处理的只是剥离了本地路径前缀的一部分。处理结束后,这个路径会被自动地附着回去。默认值是"RewriteBase physical-directory-path"。

在对一个新的URL进行替换时,此模块必须把这个URL重新注入到服务器处理中。为此,它必须知道其对应的URL前缀或者说URL基准。通常,此前缀就是对应的文件路径。但是,大多数网站URL不是直接对应于其物理文件路径的,因而一般不能做这样的假定! 所以在这种情况下,就必须用RewriteBase指令来指定正确的URL前缀。

如果你的网站服务器URL不是与物理文件路径直接对应的,而又需要使用RewriteBase指令,则必须在每个对应的.htaccess文件中指定RewriteRule 。


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

/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的请求。

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

请求:
/xyz/oldstuff.html
内部处理过程:
/xyz/oldstuff.html     -> /abc/def/oldstuff.html  (per-server Alias)
/abc/def/oldstuff.html -> /abc/def/newstuff.html  (per-dir  

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号