2011-12-30 6 views
2

今、私のウェブサイトのルートディレクトリにいくつかのフォルダ(img、css、js、およびico)があります。しかし、私はそれらをpublic_htmlという新しいディレクトリに移動したい。たとえば、イメージフォルダが/ imgに置かれているのではなく、代わりに/ public_html/imgに置かれます。しかし、私はこれをやっている問題があり、私はそれが私の.htaccessファイルの問題だと思う。mod_rewriteが正しく動作しない - 静的リソースにアクセスする

Options -Indexes 
Options +FollowSymLinks 
RewriteEngine On 

ErrorDocument 404 static/404.html 
ErrorDocument 403 static/403.html 


RewriteCond %{REQUEST_FILENAME} !-f 

# ---------- Custom Routes ---------------- 



# ----------------------------------------- 

RewriteRule ^(js|css|img|ico)\/(.+)$ public_html/$1/$2 
RewriteRule ^(.*)$ index.php?r=$1 [L,QSA] 

私はちょうど罰金/public_html/css/style.cssにアクセスすることができますが、私はその最初のRewriteRule行に追加して、/css/style.cssにアクセスしようとすると、それは動作しません。

誰でも知ることができますか?ありがとう。

答えて

1

最初のルールに[L]フラグを追加します。それ以外の場合は、2番目のルールに戻り、r=index.phpに渡そうとします。なぜならそれは、私は2番目の行をコメントアウトするとき、それは完璧に動作するので、動作していない[L]フラグのように思えるRewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(js|css|img|ico)\/(.+)$ public_html/$1/$2 [L] 

# Update: Try using the RewriteCond before this line 
# as well as where you have it earlier 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?r=$1 [L,QSA] 
+0

public_html作品を経由してそれにアクセスします。 – Ryan

+0

@RLC上記で編集したように、最後の行の前に 'RewriteCond'をもう一度追加してみてください。 –

+0

ありがとう!それはそれを修正した。 – Ryan

関連する問題