Ответ 1
Попробуйте этот код:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|css|js)$
RewriteRule .* /index.html [L,R=302]
Как перенаправить все страницы (только страницы) на index.html, используя файл htaccess, а не перенаправлять файлы изображений. По какой-то причине я использую этот код, и файл изображения на странице index.html не отображается.
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteRule .* /index.html [L,R=302]
Попробуйте этот код:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|css|js)$
RewriteRule .* /index.html [L,R=302]
Держите свои правила простыми. Вместо фильтрации, что не должно совпадать, просто сопоставьте файлы.
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteRule .*\.(php|html)$ /index.html [L,R=302]
Более хорошим способом может быть просто игнорирование существующих файлов. Например:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* / [L,R=302]
!-d
говорит, что игнорировать перезапись, если существует существующий каталог, соответствующий совпадению.
!-f
говорит, что игнорировать перезапись, если существует существующий файл, который соответствует совпадению.
Все остальное будет переписано.
Добавьте до следующей строки
следующее:RewriteCond %{REQUEST_URI} !(\.png|\.jpg|\.gif|\.jpeg|\.bmp)$
Вам необходимо добавить файл .htaccess
в каталог public
, поэтому при создании приложения оно автоматически копируется в новый каталог dist
. Содержание .htaccess
должно быть таким:
RewriteEngine On
RewriteBase /
RewriteRule ^index.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]