1

我试图学习 htaccess 基础知识,但第一步让我发疯并失去了一些宝贵的时间..

htaccess 代码在以单行编写和以两行不同行编写时表现不同

下面的代码

RewriteEngine on 
RewriteRule .* good.html   

以及下面的代码

RewriteEngine on RewriteRule .* good.html   

表现的不一样。。

请解释它是怎么回事..我猜,这是因为 htaccess 先检查所有条件然后才能工作..但这也不应该让它像那样工作..

4

1 回答 1

1

Apache 指令希望自己在线。所以当你有:

RewriteEngine on RewriteRule .* good.html   

第一个“词”是指令,例如RewriteEngine。它寻找是否应该打开或关闭,下一个“单词”是on。到目前为止一切顺利,重写引擎已打开。但是在那之后还有一堆其他的废话,它将被忽略。

但是当你有:

RewriteEngine on 
RewriteRule .* good.html   

重写引擎正常打开。然后RewriteRule处理指令。该行中的第一个“单词”是RewriteRule,因此参数是RewriteRule 正则表达式 目标 [flags]

因此,当它们在不同的行上时,所有内容都会在内部重写为good.html. 同时,后面的一切都on被忽略了。

于 2012-10-04T09:15:54.257 回答