2013-04-09 99 views
-1

既然我的脚已经被.htaccess弄湿了,我还有一个新问题。在很多教程我已经收藏之一,笔者建议把这段代码在.htaccess文件的开头:.htaccess代码,这个例子很好的编码习惯吗?

AddDefaultCharset UTF-8 
RewriteEngine On 
RewriteBase/

我可以理解,避免与第一行解析问题的问题,还等什么我想知道的是,除了RewriteEngine On还有其他两种线路是好的做法还是只是增加了膨胀?

非常感谢!

回答

2

RewriteBase /行有时用于解析目标中的相对URI和/或RewriteRule的模式。例如,如果一个htaccess文件是在/foo目录,你有可能看起来像这样的规则:

RewriteEngine On 
RewriteBase /foo/ 
RewriteRule ^bar$ index.php?bar [L] 

这里,规则的目标index.php?bar是一个相对的URI和基地被前面加上,导致URI:/foo/index.php?bar。当规则的目标是相对的时候,apache会猜测URI是一个文件路径还是一个URL路径,并且它并不总是正确猜测。通过RewriteBase /foo/,apache知道/foo/index.php是一个URL路径。可能有重写基地与它所在的文件夹不匹配的情况,但结果仍然相同。它充当规则中相对URI的URI基础。

在没有伤害的情况下,除非出于某种原因,您希望某些相对URI实际映射到文件路径。

AddDefaultCharset指令并不适用于该字符集的htaccess文件中,它是Web服务器给予请求时,该请求内容text/html类型或text/plain的响应的一部分。再说一次,除非你是文本或html内容,其实其他编码(例如* shift_jis *),否则不会伤害你的htaccess文件。

+0

非常感谢!所有的好消息,我想代表该教程作者代表这是一个编码偏好。优秀! – mileaminute 2013-04-09 01:04:44

相关问题