2009-07-25 85 views
2

我在本地計算機(mac)上運行Apache,並啓用了Mod_Rewite,並在XAMPP的httpd.conf文件中設置了Allowoveride All。XAMPP Mod_Rewrite&動態CSS

這是我的規則,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> 

在我的index.php文件我已經 -

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

在我userlayout.php文件 -

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

這就是一切,但規則沒有做任何事情。我不確定是否將規則放在正確的位置,並且我知道您可以在httpd.conf文件中執行此操作,而不是在.htaccess文件中執行此操作。

+0

嘗試在你的``塊的規則。 – Gumbo 2009-07-25 09:08:20

回答

0

我想出了問題所在。 XAMPP設置需要mod_rewrite的「Options + FollowSymLinks」行才能工作。此外,這必須放置在目錄標籤之外,因爲重寫規則適用於每個目錄,這就是爲什麼我在「RewriteBase /」指令中收到錯誤的原因。

因此,完整的代碼:

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

重寫規則^ /安裝/ CSS/userlayout.css $ /setup/css/userlayout.php

你可以看到更多關於重寫規則here

+0

什麼也沒有。我懷疑規則沒有錯。事實上我不能證明mod-rewrite是否可以工作,除非放在RewriteBase中/我得到一個很大的錯誤信息,我根本不應該這樣做。嗯...... – EddyR 2009-07-25 06:55:56