.htaccess正则表达式按文件类型重定向

时间:2012-04-10 09:02:46

标签: regex url-rewriting

我目前正在Google App Engine中开发一个网站作为网站开发平台,但我最终希望能够将网站从动态模板编译为静态HTML / CSS版本。

就URL映射而言,站点根目录中存在所有站点文件,但我仍然希望能够将特定文件类型映射到文件夹。

例如:

  • / images - 包含所有图片
  • / scripts - 包含所有JavaScript文件
  • / stylesheets - 包含所有样式表

现在,在GAE中,我使用以下静态路由路由这些路由:

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

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

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

如何使用包含站点根目录中的正则表达式重写规则的.htaccess文件映射这些静态路由?

1 个答案:

答案 0 :(得分: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

第2行 - 第5行只有在文件/ link /目录确实存在时才希望不重写apache。