Rewriterule打破了资源加载的绝对路径

时间:2015-04-14 11:02:01

标签: apache .htaccess mod-rewrite

我有.htaccess指向两个不同的路由器,一个用于前端,另一个用于 api s

<ifModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d

  RewriteRule ^(?!api\/).* frontend/router.php [QSA,NC]
  RewriteRule ^api/.* backend/router.php [QSA,NC]

</ifModule>

路线运行完美但我的问题是,在一个视图中,当我尝试加载一些资源时:

<link rel="stylesheet" href="/assets/css/normalize.css" charset="utf-8"/>

它不起作用,因为assets位于/frontend之下而不是实际根/之下。

如何更改每个目录的根路径?我想要实现的是/中的link指向frontend而不指向父文件夹。

我尝试使用aliasaliasMatch,但没有运气。

这是我的文件夹结构:

/
/backend
/frontend
.htacess

希望你有意义。

1 个答案:

答案 0 :(得分:0)

使用

解决
RewriteRule ^assets/(.*)$ frontend/assets/$1 [L,NC]