2012-05-23 13 views
6

Hola, he estado tratando tan duro de hacer lo siguiente en htaccess, pero parece que no funciona.Parse js/css como un archivo PHP usando htaccess

¿alguien puede ayudarme?

AddType application/x-httpd-php .js

probé la versión PHP4, PHP5 todas las cosas que pude encontrar en Google, pero no he tenido suerte.

¿Qué me he perdido?

en mis file.js

son los siguientes ...

<?php 

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

estoy esperar un error fatal php pero veo exactamente lo anterior como texto sin formato.

Respuesta

9

Probar:

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

He intentado esto, no funciona :( – Val

+0

Tienes que hacer esto para obtener PHP Para procesar tus archivos .js, sin embargo, no necesitas usar AddHandler dentro de una directiva , pero lo harías si estuvieras usando SetHandler. Pero cuando usas este controlador, el tipo de respuesta MIME será text/html por defecto, y no creo que esto pueda ser reemplazado en .htaccess, lo que significa que necesitarás (re) establecer el tipo MIME en PHP, según la respuesta de @ Steve. –

1

Si está tratando de hacer que PHP funcione en archivos Javascript, simplemente puede cambiar el nombre de Javascript a javascript_file.js.php y tener PHP trabajando dentro de eso.

No tendrá problemas para incluir eso en su página.

`

+0

sé que es la mejor, sin embargo , en mi teclado numérico ++ me gustaría tener los marcadores encendidos y no en blanco y negro :) – Val

+0

¿Todavía se puede incluir el uso de ''? ¿O tendrías que usar php para incluir? – JVE999

0

Una posibilidad es que usted no está configurado para permitir el uso de un archivo .htaccess.

Puede verificar esto en su httpd.conf.

usted quiere asegurarse de que AllowOverride se establece en All

por ejemplo

de

<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 funciona como lo he probado con 'RewriteRule. /index.php [L]' y algunos otros bits allí (que intenté eliminarlos a todos, pero la 'AddHandler application/x- httpd-php .js' – Val

2

Si estoy en lo correcto, el archivo JS PHP tiene que Ser servido con un encabezado de tipo de contenido: application/x-javasc ript, de lo contrario no se interpreta como JS.

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

+0

' Val

+0

No creo m cualquier navegador se preocupa por el tipo de contenido de los archivos JavaScript, pero algunos asumen que si un archivo CSS es text/html, entonces es probable que sea un 404 sofisticado y no se procesará nada. –

9

Si quieres hacer esto utilizando sólo de configuración .htaccess (que quiere establecer las cabeceras de todos los archivos 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

Si obtiene un error interno de 500 Server con la línea de encabezado, asegúrese de tener mod_headers habilitados en su configuración de apache. Gracias Lee! –

0

no sé mucho acerca de .htaccess pero lo hago que parte de la solución a su problema es mover el jQuery fuera de las etiquetas PHP como así:

<?php 

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

su archivo va a ser analizado como cualquier otro archivo PHP, por lo que su Javascript se ejecutará con normalidad, dentro de etiquetas javascript.

si desea incluir variables php dentro de su javascript Eso sí, como tan:

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

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

el código de arriba, devolverá la fecha y hora actual época en el interior del elemento SPAN