Apache RewriteCond可以防止无限循环

时间:2015-05-10 16:59:09

标签: php apache .htaccess mod-rewrite google-analytics

我在我的网站上使用Google Analytics,它可以正常使用网页,问题是我想在直接访问时点击计数器的mp3文件。

我有一个php文件如下:

<?php 

error_log("hiiiiiiiii--".$_SERVER['REQUEST_URI']); // for testing
error_log("meeeeeeeee--".$_SERVER["HTTP_REFERER"]); // for testing
//header("location:".$_SERVER['REQUEST_URI']);

?>

<html>
    <body>
        <script>
            //GA code goes here
            window.location = ("<?php echo $_SERVER['REQUEST_URI']; ?>");
        </script>
    </body>
</html>

并在音频文件的根文件夹中的.htaccess中:

#RewriteCond %{SCRIPT_NAME} !(counter) #Here is the problem
RewriteRule ^(.*)\.mp3$ /media/counter\.php [L]

请求重定向到counter.php并重定向到.mp3文件,但这会产生无限循环,因为它很明显。 我需要的是RewriteCond,如果http_refferer或script_name包含名称&#34; counter&#34;不要重定向到counter.php。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

  

我需要的是RewriteCond,如果http_refferer或script_name包含名称“counter”,则不会重定向到counter.php。

尝试此规则:

RewriteCond %{HTTP_REFERER} !counter [NC]
RewriteCond %{REQUEST_URI} !counter [NC]
RewriteRule ^.+?\.mp3$ media/counter\.php [L,NC]