RewriteBase指令显式设置目录级重写的基URL。在下文中,您将看到RewriteRule可以在目录级配置文件中使用。htaccess)并在本地工作,也就是说,该规则实际上只处理去掉本地路径前缀的一部分。
RewriteBase URL-path
RewriteBase用于设置重写的基本URL。在下面的内容中,您可以看到RewriteRule可以在目录级配置文件中使用。htaccess)并在本地工作,也就是说,该规则实际上只处理去掉本地路径前缀的一部分。处理后,该路径将自动附加回去。默认值是“重写基本物理目录路径”。
当替换一个新的URL时,这个模块必须将这个URL重新注入到服务器处理中。因此,它必须知道其对应的URL前缀或URL基准。通常,这个前缀是相应的文件路径。但是大部分网站URL并不直接对应其物理文件路径,所以一般无法做出这样的假设!因此,在这种情况下,正确的URL前缀必须由RewriteBase指令指定。
如果您的网站服务器URL不直接对应于物理文件路径,并且您需要使用RewriteBase命令,则必须在每个对应的。htaccess文件。
RewriteBase指令显式设置目录级重写的基URL。在下文中,您将看到RewriteRule可以在目录级配置文件中使用。htaccess)并在本地工作,也就是说,该规则实际处理的只是去掉本地路径前缀的一部分。处理后,该路径将自动附加回去。默认值为“重写基本物理目录路径”。
当替换一个新的URL时,这个模块必须将这个URL重新注入到服务器处理中。因此,它必须知道其对应的URL前缀或URL基准。通常,这个前缀是相应的文件路径。但是大部分网站URL并不直接对应其物理文件路径,所以一般无法做出这样的假设!因此,在这种情况下,正确的URL前缀必须由RewriteBase指令指定。
如果您的网站服务器URL不直接对应于物理文件路径,则必须在每个。使用RewriteRule的htaccess文件。
例如,目录级配置文件如下所示:
#/ABC/def/。ABC/def目录的htaccess-/配置文件
#注意:/abc/def是/xyz的物理路径(例如,有一个' Alias /xyz /abc/def '指令)。
#上的RewriteEngine让服务器知道我们正在使用/xyz,而不是物理路径/abc/defRewriteBase /xyz。
#重写旧规则\。html $ newstuff.html
在上面的例子中,对/xyz/oldstuff.html的请求被正确地重写为对物理文件/abc /abc/def/newstuff.html的请求
仅供Apache黑客参考
内部处理的详细步骤如下:
Request:/xyz/oldstaff.html内部进程:/XYZ/old staff . html-/ABC/def/old staff . html(每服务器别名)/ABC/def/old staff . html-/ABC/def/newstuff.html(每目录重写规则)/ABC/def/news tuff . html-/XYZ/news tuff . html(每目录重写库)/XYZ/news tuff . html-/ABC/def/news tuff . html(每服务器别名)
结果:/abc /abc/def/newstuff.html
虽然这个过程看起来很复杂,但是目录级重写已经来不及了,它要把这个(重写)请求重新注入Apache核心,所以这是Apache内部做的事情。但是它的代价并没有看起来那么大,因为回注是完全在Apache服务器内部进行的,这个过程也被Apache内部的很多其他操作使用。因此,您可以完全相信它的设计和实现是正确的。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。