现在我的脚被正式弄湿了.htaccess我有一个新问题。在我收集书签的许多教程中,作者建议将这段代码放在.htaccess文件的开头:
AddDefaultCharset UTF-8
RewriteEngine On
RewriteBase /
我可以理解避免解析第一行问题的问题,所以我想知道的是,除了RewriteEngine On
之外,其他两行是好的做法还是仅仅添加膨胀?
非常感谢!
答案 0 :(得分:2)
RewriteBase /
行有时用于解析目标和/或RewriteRule
模式中的相对URI。例如,如果htaccess文件位于/foo
目录中,并且您的规则可能如下所示:
RewriteEngine On
RewriteBase /foo/
RewriteRule ^bar$ index.php?bar [L]
此处,规则的目标index.php?bar
是相对URI, base 会被添加到其前面,从而生成URI:/foo/index.php?bar
。当规则的目标是相对的时,apache将猜测URI是文件路径还是URL路径,并且它并不总是正确猜测。使用RewriteBase /foo/
,apache知道/foo/index.php
是一个URL路径。可能存在重写基础与其所在文件夹不匹配的情况,但结果仍然相同。它充当规则中相对URI的URI基础。
除非由于某种原因您希望某些相对URI实际映射到文件路径,否则不会受到伤害。
AddDefaultCharset
指令不适用于htaccess文件的字符集,它是请求内容类型为{{{}时网络服务器为请求提供的响应的一部分1}}或text/html
。再说一遍,除非你的文字或html内容实际上是一些其他编码(例如* shift_jis *),否则在你的htaccess文件中有这个没有坏处。