有几个标志,我一直在通过互联网搜索,我似乎不明白。mod_rewrite标志,我不明白
什么时候使用[E]标志?
例如。
RewriteRule \.jpg$ - [env=dontlog:1]
这是做什么...?
NS(无后续请求)是如何工作的?如果我在我的php文件中有很多包含,我是否需要把它放到NS,以防止它停止工作?它有什么用途?
有几个标志,我一直在通过互联网搜索,我似乎不明白。mod_rewrite标志,我不明白
什么时候使用[E]标志?
例如。
RewriteRule \.jpg$ - [env=dontlog:1]
这是做什么...?
NS(无后续请求)是如何工作的?如果我在我的php文件中有很多包含,我是否需要把它放到NS,以防止它停止工作?它有什么用途?
当该规则匹配时(\.jpg%
),环境变量dontlog
设置值为1
。
后来,最有可能的情况是Apache配置定义了一个CustomLog
指令,该指令读取该环境变量,并且在设置日志文件时不写入一行。因此,.jpg
图像文件的请求不会写入Apache日志。
例如:
# Log any request that doesn't have a dontlog variable set...
CustomLog logs/access_log common env=!dontlog
有信息有关环境变量一点点in the mod_rewrite documentation直接从所述文档
:
下面的示例将被称为“图像的环境变量'如果请求的URI是图像文件,则值为'1'。然后,该环境变量用于从访问日志中排除这些请求。
RewriteRule \.(png|gif|jpg) - [E=image:1]
CustomLog logs/access_log combined env=!image
你有一个链接到更多的例子..我是不熟悉该日志记录系统..或与“共同”关键字 –
@DmitryMakovetskiyd我一直在寻找的例子,但被拉开...只有有限的信息[在文档](http://httpd.apache。 org/docs/2.2/mod/mod_rewrite.html)我会看看还有什么可以发现的。 –
要回答你关于为什么重写不工作的问题,那是因为你的第一条规则重写从index.php的请求target.php,因此第二条规则将永远不会触发,因为请求文件不再是index.php。
评论已经给了你环境变量标志的答案。
设置一个“环境变量”,然后您可以在配置中的其他地方读取它,以有条件地触发其他行为。至于它到底是什么,那是在你的配置的其他地方定义的,所以我们不能真正告诉你。 –
不能阅读它,稍后在我的htaccess脚本中,设置它,然后阅读它..或保持它之间的请求,并阅读它..就像一个“会议”也许 –