Назад | Перейти на главную страницу

Перенаправлять каждый запрос на страницу индекса

Я пытаюсь перенаправить все запросы пользователя на мою индексную страницу, кроме того, который был направлен в корневую папку.

Так www.domain.com/page.ext в порядке, пока www.domain.com/folder/page.ext должен быть перенаправлен.

Вот мой .htaccess:

RewriteEngine on
RewriteRule ^([^/]+)/?$ /index.html [L]
ErrorDocument 404 /index.html

Это вызывает Internal Server Error и я не знаю почему.

По сути, я хочу заставить пользователя обращаться только к странице index.html в любой ситуации.

Предложения?

РЕДАКТИРОВАТЬ:

Чтобы дать больше информации, вот моя структура сайта:

/
|-- index.html
|-- css
   |-- site.css
|-- js
   |-- site.js
|-- images
   |-- img1.png
   |-- img2.png
   |-- img3.png

Как видите, это действительно просто.

Что мне нужно сделать, так это показать всегда мой index.html (который использует css/site.css, js/site.js и изображения используются в css)

Так что неважно, какую страницу запрашивает пользователь, мой сайт должен показать индекс один. Это означает, что индекс должен отображаться даже в случае ошибки 404 и даже если пользователь запрашивает страницу в папке, которой не существует!

В пределах .htaccess file, относительный путь к каталогу (или RewriteBase, если он настроен) используется как для строки соответствия (у вас есть это право в вашем регулярном выражении, без ведущей косой черты), так и для строки замены.

Пытаться RewriteRule ^([^/]+)/?$ index.html [L]

Редактировать:

Чтобы избежать этого для ваших файлов изображений / js / css, вы можете использовать RewriteCond чтобы предотвратить применение правила:

RewriteCond %{REQUEST_URI} !^/images [NC]
RewriteCond %{REQUEST_URI} !^/css [NC]
RewriteCond %{REQUEST_URI} !^/js [NC]
RewriteRule ^([^/]+)/?$ index.html [L]