Подтвердить что ты не робот

Как перенаправить все страницы только на index.html, используя файл htaccess, а не перенаправлять файлы изображений

Как перенаправить все страницы (только страницы) на index.html, используя файл htaccess, а не перенаправлять файлы изображений. По какой-то причине я использую этот код, и файл изображения на странице index.html не отображается.

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteRule .* /index.html [L,R=302]
4b9b3361

Ответ 1

Попробуйте этот код:

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

Ответ 2

Держите свои правила простыми. Вместо фильтрации, что не должно совпадать, просто сопоставьте файлы.

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

Ответ 3

Более хорошим способом может быть просто игнорирование существующих файлов. Например:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* / [L,R=302]

!-d говорит, что игнорировать перезапись, если существует существующий каталог, соответствующий совпадению.

!-f говорит, что игнорировать перезапись, если существует существующий файл, который соответствует совпадению.

Все остальное будет переписано.

Ответ 4

Добавьте до следующей строки

следующее:
RewriteCond %{REQUEST_URI}  !(\.png|\.jpg|\.gif|\.jpeg|\.bmp)$

Ответ 5

Вам необходимо добавить файл .htaccess в каталог public, поэтому при создании приложения оно автоматически копируется в новый каталог dist. Содержание .htaccess должно быть таким:


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