2012-04-10 8 views
2

私は現在、Google App Engineのサイトをウェブサイト開発プラットフォームとして開発していますが、最終的にサイトを動的テンプレートから静的HTML/CSSのみにコンパイルする機能を構築したいと考えていますバージョン。.htaccess regexファイルタイプ別リダイレクト

URLマッピングに関しては、すべてのサイトファイルがサイトルートに存在しますが、特定のファイルタイプをフォルダにマップできるようにしたいと考えています。例については

  • /画像 - すべての画像
  • が含まれている/スクリプト -
  • /スタイルシートのすべてのJavaScriptファイルが含まれている - 私はGAEには、今のところすべてのスタイルシート

が含まれていますこれらを次の静的ルートでルーティングします:

url: /(.*\.(gif|png|jpg)) 
    static_files: /images/\1 

url: /(.*\.css) 
    static_files: /stylesheets/\1 

url: /(.*\.js) 
    static_files: /scripts/\1 

サイトルートに正規表現の書き換えルールを含む.htaccessファイルを使用してこれらの静的ルートをマップするにはどうすればよいですか?

+0

私はGAEに精通しておらず、ここで達成したいことを正確に理解していません。あなたが何を行う必要があるか( "url - > url"から)いくつかの "本当の"例を提供できますか?私はあなたがここで何をしようとしているのか考えていると思いますが、私は明確化が必要です。 (P.S.実際の書き換えルールはシンプルにする必要があります) – LazyOne

+0

@LazyOne site.com/image.jpgを置くと、site.com/images/image.jpgにマップされます。スタイルシートの場合、例はsite.com/main.css - > site.com/stylesheets/main.cssです。一般的な考え方は、バックエンドのファイルを整理する能力を犠牲にすることなく、アセットURLを物理的に可能な限り単純にすることです。結局、サイト全体の静的なHTML/CSSページを含むsite/htmlフォルダが作成されますが、まだその部分で作業しています。 –

答えて

2

あなたがライン2本の.htaccess設定に

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

RewriteRule ^(.*\.(gif|png|jpg))$ /images/$1 
RewriteRule ^(.*\.css)$ /stylesheets/$1 
RewriteRule ^(.*\.js)$ /scripts/$1 

を使用することができます - 5は、ファイル/リンク/ディレクトリが実際に存在するかどう書き換えることではないのapache場合のみです。

+0

素晴らしいです。私はそれが必要ではないにしても、特に2行目から5行目の追加が好きです。私はこれが動作することを確認するためにテストしていないが、とにかくあなたにクレジットを与えるでしょう。ありがとう。 –

+0

これに答える必要はありませんが、この設定をhttpd.confでも使用できますか?私はたった今、.htaccessファイルのリダイレクト/リライトルールを使って遊んだことがあります。もしApache設定ファイルが編集可能な場合は、.htaccessファイルを削除したいと思っています。 –

+0

私はまた、.htaccessファイルでのみ再生しました。しかし、それをhttpd.confに移すのは難しいことではありません。 '' -tagにラップして、どのディレクトリに適用するかを指定してください。 – ANisus