如何使用htaccess文件仅将所有页面重定向到index.html,而不是重定向图像文件

use*_*041 28 .htaccess image

如何使用htaccess文件将所有页面(仅限页面)重定向到index.html,而不是重定向图像文件.出于某种原因,我使用此代码并且index.html页面上的图像文件未显示.

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteRule .* /index.html [L,R=302]
Run Code Online (Sandbox Code Playgroud)

Luc*_*ems 91

试试这段代码:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|css|js)$
RewriteRule .* /index.html [L,R=302]
Run Code Online (Sandbox Code Playgroud)

  • 如果我能解决您的问题,您可以验证我的答案. (3认同)

Rav*_*yal 12

保持规则简单.而不是过滤不匹配的内容,只需匹配文件即可.

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteRule .*\.(php|html)$ /index.html [L,R=302]
Run Code Online (Sandbox Code Playgroud)


koj*_*ow7 6

更好的方法可能就是忽略现有文件。例如:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* / [L,R=302]
Run Code Online (Sandbox Code Playgroud)

!-d说忽略重写如果满足匹配现有目录。

!-f说忽略重写,如果有一个现有的文件满足匹配。

其他所有内容都将被重写。


Nad*_*bas 5

您需要在目录.htaccess中添加一个文件public,因此每当您构建应用程序时,它都会自动复制到新dist目录。的内容.htaccess应该是这样的:


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

Run Code Online (Sandbox Code Playgroud)