[原创] 为什么要使用 RewriteBase ?-(3)
时间:2008-03-12 来源:ailms
情况三 :(不使用别名,物理路径等于逻辑路径,不定义 RewriteBase )
配置 :
RewriteLog /var/log/httpd/rewrite_log
RewriteLogLevel 9
<Directory /var/www/html/mydir> # 注释 :mydir/ 就在 /var/www/html/ 下,不是在 /var/www/ 下
RewriteEngine On
RewriteRule ^default\.html$ index.html
</Directory>
请求 :
Http://172.17.64.34/mydir/default.html

Rewrite log 内容 :
步骤分析 :
-)1、/var/www/html/mydir/default.html (没有 Alias 语句,直接就访问该目录)
-)2、去掉物理路径前缀 → default.html
-)3、匹配 RewriteRule ,改写为 index.html
-)4、加上物理前缀 → /var/www/html/mydir/index.html
-)5、没有定义 RewriteBase ,所以不做替换
-)6、去掉 DocumentRoot 部分,剩下 /mydir/index.html
-)7、发生内部重定向
-)8、GET /mydir/index.html ,实际上就是 /var/www/html/mydir/index.html
-)9、由于还是访问 <Directory /var/www/html/mydir> ,所以还是需要进行检查。再次去掉物理前缀,剩下 /mydir/index.html ,不匹配 RewriteRule ,不修改
-)10、直接返回 /var/www/html/mydir/index.html