2011-10-24 6 views
2

をREQUEST_FILENAMEへのパスを追加しますが、私のコードです:mod_rewriteを - ここで変数

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond application/public/%{REQUEST_FILENAME} -f 
RewriteRule (.*) application/public/$1 [L] 

私が表現したい:ファイル{REQUEST_FILENAME}存在しない場合は、ファイルapplication/public/%{REQUEST_FILENAME}が存在する場合

  • を書き換えを行う

結果の例S:

  • /style.css = /application/public/style.css
  • /gfx/logo.png = /application/public/gfx/logo.png
  • /index.php =/index.phpの
  • /ウェルカム= /index.php?input=Welcome(それが働いている)

この表現のための適切なコードは何ですか?

RewriteCond application/public/%{REQUEST_FILENAME} -f 

しかし、私には血まみれのアイデアどのように...

全.htaccessの物件がありません:私は私が行を変更する必要があると思う

RewriteEngine on 

RewriteRule style,(.+).css tmp/merged/css,$1 [L,QSA] 
RewriteRule script,(.+).js tmp/merged/js,$1 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond application/public/%{REQUEST_FILENAME} -f 
RewriteRule (.*) application/public/$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.*) index.php?input=$1 [L,QSA] 

(私の英語のため申し訳ありません)

+0

私は%{REQUEST_URI}も使用する必要があると思いますが、どうすればいいのか分かりません。 – Peter

答えて

0

私は小さな回避策を見つけましたが、それは洗練された解決策ではありません:(

RewriteEngine on 

# Access to files in ./application/public 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.*) application/public/$1 [DPI] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule application/public/(.*) $1 [DPI] 

# Main rewrite 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.*) index.php?input=$1 [L,QSA,DPI] 
関連する問題