2009-07-25 9 views
2

J'utilise Apache sur mon ordinateur local (mac) avec Mod_Rewite activé et Allowoveride All défini dans le fichier httpd.conf de XAMPP.XAMPP Mod_Rewrite & CSS dynamique

Ce sont mes règles, extrait de fichier httpd.conf -

RewriteEngine On 
RewriteRule ^/setup/css/userlayout.css /setup/css/userlayout.php 

Alias /ms "/Users/web/wwwroot/ms" 

<Directory "/Users/web/wwwroot/ms"> 
    Options Indexes MultiViews 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 

Dans mon fichier index.php je -

<link rel="stylesheet" type="text/css" href="setup/css/userlayout.css?u=1" /> 

Et dans mon fichier userlayout.php est -

<?php 
    header('Content-type: text/css'); 
    echo "#test{background-color:#000;}"; 
?> 

C'est tout sauf les règles ne font rien. Je ne suis pas sûr si je mets les règles au bon endroit et je comprends que vous pouvez le faire dans un fichier httpd.conf et pas le fichier .htaccess.

+0

Essayez les règles dans votre bloc '' . – Gumbo

Répondre

0

J'ai compris quel était le problème. La configuration de XAMPP nécessite que la ligne "Options + FollowSymLinks" fonctionne pour mod_rewrite. De plus, ceci doit être placé dans la balise du répertoire qui ne se trouve pas à l'extérieur, car les règles de réécriture fonctionnent par répertoire, ce qui explique pourquoi je recevais l'erreur sur la directive "RewriteBase /".

Ainsi, le code complet est:

<IfModule mod_rewrite.c> 
    Options +FollowSymLinks 
    RewriteEngine on 
    RewriteBase /root 
    RewriteRule ^setup/css/userlayout\.css$ setup/css/userlayout\.php 
</IfModule> 
1

RewriteRule ^/setup/css/userlayout.css /setup/css/userlayout.php $

Vous pouvez en savoir plus sur RewriteRule here.

+0

Non rien. Je soupçonne qu'il n'y a rien de mal à la règle. En fait, je ne peux pas prouver que le mod-rewrite fonctionne, sauf si je le mets dans RewriteBase/je reçois un gros message d'erreur que je ne devrais pas avoir du tout. hmmm .... – EddyR

+0

Si vous utilisez la dernière version de XAMPP (pour Windows), je suis sûr qu'il est installé et actif par défaut. – Nathan

+0

doit être autre chose alors. Quelqu'un a des idées? – EddyR