我构建了一个包含Vue-Router
的VUE CLI
Web应用程序,因此我应该将所有请求重写为index.html
文件,如下所示:
RewriteEngine On
RewriteRule ^(.*)$ ./index.html [L]
但存在一个问题,即有两个文件夹css
和js
包含由Vue-CLI
自动生成的压缩的css
和js
。浏览器会发送一个请求,比如:https://example.com/css/xyz.css
,但如上所述,Apache
会回答index.html
文件。例如js
文件夹/文件
对于"将所有请求重写到index.html
,但现有文件/文件夹(如favicon.ico
或Bootstrap
、css
/js
文件或图片)或相同文件夹中的css
/js
文件),我能做些什么?
当我读到问题的第一条评论(此处)时,我明白我可以使用RewriteCond
(重写前条件反射)的表达式
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . ./index.html
在将所有请求重写到index.html
文件之前,有两个条件,即检查REQUEST_FILENAME
,以确保REQUEST_FILENAME
不是(!
)当前文件夹或当前文件夹的一个子文件夹中的文件(-f
)或目录(-d
)
注意:在ONE之前的每个RewriteCond
RewriteRule
只影响相同的RewriteRule
,在RewriteRule
之后不影响任何RewriteRule