JavaScript doesn't parse when mod-rewrited through a PHP file?

Posted by Newbtophp on Stack Overflow See other posts from Stack Overflow or by Newbtophp
Published on 2010-12-25T21:49:35Z Indexed on 2010/12/25 21:54 UTC
Read the original article Hit count: 207

Filed under:
|
|

If I do the following (this is the actual/direct path to the JavaScript file):

<script href="http://localhost/tpl/blue/js/functions.js" type="text/javascript"></script>

It works fine, and the JavaScript parses - as its meant too.

However I'm wanting to shorten the path to the JavaScript file (aswell as do some caching) which is why I'm rewriting all JavaScript files via .htaccess to cache.php (which handles the caching).

The .htaccess contains the following:

<IfModule mod_rewrite.c> 
RewriteEngine On

RewriteBase /

RewriteRule ^js/(.+?\.js)$ cache.php?file=$1 [NC] 
</IfModule>

cache.php contains the following PHP code:

<?php

if (extension_loaded('zlib')) {
    ob_start('ob_gzhandler');
}

$file = basename($_GET['file']);

if (file_exists("tpl/blue/js/".$file)) {
header("Content-Type: application/javascript");
header('Cache-Control: must-revalidate');
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 3600) . ' GMT');

echo file_get_contents("tpl/blue/js/".$file);

}

?>

and I'm calling the JavaScript file like so:

<script href="http://localhost/js/functions.js" type="text/javascript"></script>

But doing that the JavaScript doesn't parse? (if I call the functions which are within functions.js later on in the page they don't work) - so theirs a problem either with cache.php or the rewrite rule? (because the file by itself works fine).

If I access the rewrited file-> http://localhost/js/functions.js directly it prints the JavaScript code, as any JavaScript file would - so I'm confused as to what I'm doing wrong...

All help is appreciated! :)

© Stack Overflow or respective owner

Related posts about php

Related posts about JavaScript