htaccess重复file_put_contents

时间:2012-08-15 01:23:35

标签: php .htaccess routes

我创建了一个日志类。一切正常,“add”方法将数据附加到X.log。问题是,当我打开htaccess时,file_put_contents写了2行(而不是一行)。

基本上,我尝试没有类,只在index + htaccess中写入file_put_contents,并且一直复制日志。

问题看起来像是两次htaccess路由。

这是最小的代码:

的index.php:

DEFINE('BASE_PATH',dirname(__FILE__));
DEFINE('DS',DIRECTORY_SEPARATOR);
DEFINE( 'LOG_PATH' , BASE_PATH . DS . "var" . DS . "log" . DS );
file_put_contents(LOG_PATH."1.log", "hola".PHP_EOL, FILE_APPEND | LOCK_EX);
die();

.htaccess代码:

Options +FollowSymLinks
IndexIgnore */*
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine on
    RewriteCond %{REQUEST_URI} !^/(var|skin|js)/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [L]
</IfModule>

感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

您的浏览器请求favicon.ico。可能你没有 - 所以请求被重写为index.php,因此你添加了超过1条记录。

只需查看您的access.log并查看所请求的实际网址。

答案 1 :(得分:0)

谢谢zerkms,这是正确的,问题是图标。 我将此条件添加到.htaccess,如果有人需要它:

的.htaccess

RewriteCond %{REQUEST_URI} !/favicon\.ico$
RewriteRule .* index.php [L]

再次感谢zerkms。