2012-03-26 56 views
2

這是我目前的.htaccess文件:問題與的.htaccess和多個重寫規則和條件

RewriteEngine On 

    RewriteCond %{REQUEST_FILENAME} -s [OR] 
    RewriteCond %{REQUEST_FILENAME} -l [OR] 
    RewriteCond %{REQUEST_FILENAME} -d 
    RewriteRule ^.*$ - [NC,L] 
    RewriteRule ^.*$ index.php [NC,L] 

    RewriteCond %{REQUEST_URI} .*jpg$|.*gif$|.*png$|.*css$|.*js$ [NC] 
    RewriteRule (^.*) http://d14t2ycfqndlt4.cloudfront.net/$1 [R=301, 

最後兩行不工作,althouh當我刪除上述第一COND,ID不工作...

是什麼問題?謝謝!

+3

改變順序! – undone 2012-03-26 13:19:33

+0

@Death我同意 - 只需將最後2行放在其他RewriteConds之前,您應該設置 – mikevoermans 2012-03-26 16:37:03

回答

2

像這樣的東西應該工作:

RewriteEngine On 

RewriteCond %{REQUEST_URI} (.*)\.(jpg|gif|png|css|js)$ [NC] 
RewriteRule (.*) http://d14t2ycfqndlt4.cloudfront.net/$1 [R=301,...] 

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule (.*) - [NC,L] 

RewriteRule (.*) index.php [NC,L] 

注意正則表達式是有點更容易理解。

0

這是你的糾正和清理.htaccess代碼:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteRule \.(?:jpg|gif|png|css|js)$ http://d14t2ycfqndlt4.cloudfront.net%{REQUEST_URI} [R=301,L,NC] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule^index.php [L]