小知识:Apache RewriteBase 指令使用介绍

%小知识:Apache RewriteBase 指令使用介绍-猿站网-插图

rewritebase url-path

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

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

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

rewritebase指令显式地设置了目录级重写的基准url。在下文中,你将看到rewriterule可以用于目录级的配置文件中(.htaccess)并在局部范围内起作用,即规则实际处理的只是剥离了本地路径前缀的一部分。处理结束后,这个路径会被自动地附着回去。默认值是”rewritebasephysical-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/defrewritebase   /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内部也为其他许多操作所使用。所以,你可以充分信任其设计和实现是正确的。

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:.htaccess rewrite 规则详细说明

2023-3-16 12:00:53

建站知识

小知识:Kubernetes 有状态应用基本概念&Nginx部署

2023-3-16 12:15:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索