首页 > 解决方案 > htaccess 重写 js/css 文件到子目录

问题描述

我有一个简单的 VueJS 站点,我已构建并将其部署到 apache 服务器。我在使用 .htaccess 重写规则时遇到问题。

现在它会抛出错误,因为 index.html 正在根 (/) 路径而不是 /v1/css 或 /v1/js 中查找文件。我希望 url 不显示子目录,而是显示为https://test.com。然后在内部将 .htaccess 指向 /css、/js、/images 等到 /v1/css/、/v1/js/ 等...

阿帕奇服务器:

/
- v1
-.htaccess
  ---css
  ---js
  ---images
  ---index.html
  ---.htaccess

根目录中的 .htaccess 文件:

Options +SymLinksIfOwnerMatch 
RewriteEngine On 
RewriteRule ^$ /v1/ [L]

v1 目录中的 .htaccess:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]

标签: javascriptapache.htaccessmod-rewritevuejs2

解决方案


我能够使用根目录 .htaccess 文件来完成这项工作,这要归功于另一个SO 帖子

RewriteEngine On

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule (.*) /v1/$1 [L]

<IfModule mod_rewrite.c>
  RewriteBase /v1
  RewriteRule ^v1/index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /v1/index.html [L]
</IfModule>

推荐阅读