2014-07-10 321 views
1

我已經搜索和搜索,但由於某種原因無法得到這個工作,我需要它。我需要在htaccess中編寫一個規則來檢查文件是否存在,以及它是否不在原始目錄的子目錄中。例如,如果要求是:.htaccess重定向到目錄的子目錄

www.mysite.com/css/main.css 

如果文件的main.css沒有找到我需要重定向到

www.mysite.com/css/src/main.css 

我在我的.htaccess中/ CSS /目錄

試過這種
RewriteEngine ON 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^css/?([^/].+)?$ /css/src/$1 [L,R=301] 

接縫給我,這應該是一個非常簡單的任務,但似乎無法得到這個工作。還有關於調試htaccess如何記錄重寫規則正在尋找什麼?我有這在我的VirtualHost文件:

LogLevel trace4 

但這並不顯示重寫規則試圖去哪裏......感謝您的幫助!

回答

1

你的正則表達式看起來不正確。使用這樣的規則:

RewriteEngine ON 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^css/([^/]+)$ /css/src/$1 [L,R=301,NC] 

關於你的第二部分,你需要:

LogLevel trace4 
RewriteLog "/val/logs/rewrite.log" 
+0

謝謝anubava,這幫助了一堆 –

+0

不客氣,很高興它解決了。 – anubhava

+0

+1整潔。 :) – zx81

0

我能想出解決辦法,我是有是重定向這裏的問題是在任何情況下,我的.htaccess文件是有一個類似的問題:

在我的CSS目錄中,我有以下的.htaccess:

RewriteEngine ON 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/].+)?$ src/$1 [L]