有没有一种方法来重写所有的url的.htaccess index.html,但现有的文件夹?因为我使用Vue-Router

sycxhyv7  于 2023-04-07  发布在  其他
关注(0)|答案(1)|浏览(51)

我构建了一个包含Vue-RouterVUE CLI Web应用程序,因此我应该像这样将所有请求重写为index.html文件:

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

但有一个问题,有两个文件夹cssjs包含打包的cssjs,由Vue-CLI自动生成。浏览器将发送如下请求:https://example.com/css/xyz.css但是如上面重写的,Apache将回答index.html文件.例如对于js文件夹/文件
我可以做什么重写所有请求index.html,但现有的文件/文件夹,如favicon.icoBootstrapcss/js文件或图片或css/js文件在同一文件夹?

8yoxcaq7

8yoxcaq71#

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

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

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

**注意:ONERewriteRule之前的每个RewriteCond只影响同一个RewriteRule,不影响RewriteRule之后的任何RewriteRule

相关问题