有没有办法重写 .htaccess 中的所有 url 到索引.html但现有文件夹?因为我使用 Vue-Router



我构建了一个包含Vue-RouterVUE CLIWeb应用程序,因此我应该将所有请求重写为index.html文件,如下所示:

RewriteEngine On
RewriteRule ^(.*)$ ./index.html [L]

但存在一个问题,即有两个文件夹cssjs包含由Vue-CLI自动生成的压缩的cssjs。浏览器会发送一个请求,比如:https://example.com/css/xyz.css,但如上所述,Apache会回答index.html文件。例如js文件夹/文件

对于"将所有请求重写到index.html,但现有文件/文件夹(如favicon.icoBootstrapcss/js文件或图片)或相同文件夹中的css/js文件),我能做些什么?

当我读到问题的第一条评论(此处)时,我明白我可以使用RewriteCond(重写前条件反射)的表达式

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . ./index.html

在将所有请求重写到index.html文件之前,有两个条件,即检查REQUEST_FILENAME,以确保REQUEST_FILENAME不是(!)当前文件夹或当前文件夹的一个子文件夹中的文件(-f)或目录(-d)

注意:ONE之前的每个RewriteCondRewriteRule只影响相同的RewriteRule,在RewriteRule之后不影响任何RewriteRule

相关内容

最新更新