2012-05-23 11 views
6

Ciao Ho cercato così duramente di fare quanto segue su htaccess ma non sembra funzionare.Parse js/css come file PHP usando htaccess

qualcuno può aiutarmi?

AddType application/x-httpd-php .js

ho provato le PHP4, versione PHP5 tutte le cose che ho trovato su google ma non ho avuto fortuna.

cosa mi è mancato?

nei miei file.js

sono i seguenti ...

<?php 

$(document).ready();//jquery/javascript 
?> 

Io sono aspettare un errore fatale php ma vedo esattamente quanto sopra come testo normale.

risposta

9

Prova:

<FilesMatch "\.(js)$"> 
AddHandler application/x-httpd-php .js 
</FilesMatch> 
+1

Ho provato questo, non funziona :( – Val

+0

Devi farlo per ottenere PHP Per elaborare i tuoi file .js, tuttavia, non è necessario utilizzare AddHandler all'interno di una direttiva , ma lo si farebbe se si stesse usando SetHandler. Ma quando usi questo gestore, il tipo MIME della risposta verrà impostato come testo/html, e non penso che questo possa essere sovrascritto in .htaccess, il che significa che dovrai (re) impostare il tipo MIME in PHP, come da @ risposta di Steve. –

1

Se stai cercando di far funzionare PHP nei file Javascript, puoi semplicemente rinominare il Javascript in javascript_file.js.php e far funzionare PHP all'interno di esso.

Non avrai alcun problema, incluso quello nella tua pagina.

`

+0

so questo è meglio, però , sul mio notpad ++ mi piacerebbe avere gli evidenziatori attivi e non in bianco e nero :) – Val

+0

Puoi ancora includere l'uso di ''? O dovresti usare php per includere? – JVE999

0

Una possibilità è che non si è configurato per consentire l'uso di un file .htaccess.

È possibile controllare questo nel file httpd.conf.

si vuole garantire che AllowOverride è impostato su All

esempio

da

<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
    Order deny,allow 
    Deny from all 
    Satisfy all 
</Directory> 

a

<Directory /> 
    Options FollowSymLinks 
    AllowOverride All 
    Order deny,allow 
    Deny from all 
    Satisfy all 
</Directory> 
+0

.htaccess funziona come ho provato con 'RewriteRule. /index.php [L]' e alcuni altri bit lì (che ho provato a rimuoverli tutti, ma l'applicazione 'AddHandler/x- httpd-php .js' – Val

2

Se ho ragione, il file JS PHP deve essere servito con un'intestazione del tipo di contenuto: application/x-javasc ripulire, altrimenti non viene interpretato come JS.

Intestazione ("content-type: application/x-javascript");

+0

' Val

+0

Non penso m qualsiasi browser si preoccupa di cosa sia il tipo di contenuto dei file JavaScript, ma alcuni presumono che un file CSS sia text/html, quindi è probabilmente un 404 elegante e nulla verrà elaborato. –

9

Se si vuole fare questo utilizzando la configurazione appena .htaccess (che vuole impostare le intestazioni in ogni file PHP?):

<FilesMatch "\.css$"> 
    SetHandler application/x-httpd-php 
    Header set Content-type "text/css" 
</FilesMatch> 

<FilesMatch "\.js$"> 
    SetHandler application/x-httpd-php 
    Header set Content-type "application/javascript" 
</FilesMatch> 
+0

Se stai ricevendo un errore interno di 500 server con la riga di intestazione, assicurati di avere mod_headers abilitati nella configurazione di apache. Grazie Lee! –

0

io non ne so molto di .htaccess ma lo faccio credere parte la soluzione al vostro problema è quello di spostare il jQuery al di fuori dei tag PHP come modo:

<?php 

?> 
</script> 
    $(document).ready(); 
<script> 

il file sta per essere analizzato come qualsiasi altro file php, così il vostro javascript eseguirà come di consueto, all'interno di tag javascript.

se si desidera includere variabili PHP all'interno del vostro javascript basta fare come così:

<?php 
    $time=time(); 
?> 

    <script> 
     $(document).ready(function(){ 
      $("SPAN").text("<? echo $time; ?>"); 
     }); 
    </script> 
    <SPAN></SPAN> 

il codice di cui sopra restituirà il timestamp dell'epoca corrente all'interno dell'elemento SPAN