Как я могу отобразить содержимое в /index.html, отредактировав .htaccess, когда пользователь обращается к URL-адресу каталога?

У меня есть .htaccess в корневом каталоге домена. У меня есть код ниже в этом файле .htaccess:

DirectorySlash Off

Когда пользователь получает доступ к любому URL-адресу каталога в этом домене, я надеюсь, что сервер всегда сможет всегда отображать содержимое в /index.html с кодом состояния HTTP 200. Этот файл /index.html находится в корневом каталоге. Пожалуйста, не позволяйте серверу перенаправлять пользователя на файл /index.html.

Как я могу добиться этого, отредактировав файл .htaccess? Спасибо.


person weilou    schedule 05.09.2012    source источник


Ответы (2)


Попробуй это :

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . /index.html [L]
person Oussama Jilal    schedule 05.09.2012
comment
Спасибо! Язмат. Но файл index.html, который я хочу показать, находится в корневом каталоге. Не каждому каталогу соответствует index.html. Вам нужно немного изменить коды ответов? Я просто изменил исходный пост. - person weilou; 05.09.2012
comment
Большое спасибо! КСТАТИ. Коды ^(.*[^/])?$ вроде не нужны? Могу ли я удалить его? - person weilou; 05.09.2012
comment
Добро пожаловать, о коде, я думал, что вы хотите перенаправлять только URL-адреса без косой черты (моя ошибка, я плохо прочитал вопрос), я удалил его - person Oussama Jilal; 05.09.2012
comment
Привет, Язмат. Когда я обращаюсь к несуществующему каталогу, я получаю 404. Вы знаете, я хочу получить 200 и показать содержимое в корневом файле /index.html. Как я могу отменить 404 и вернуть 200? Спасибо! - person weilou; 05.09.2012

Это должно работать:

RewriteEngine On
RewriteRule ^(.+)/(.*)$ index.html?directory=$1&file=$2

Он также будет анализировать переменную «каталог» GET, а также переменную «файл» GET.

person h2ooooooo    schedule 05.09.2012
comment
Спасибо за ваш ответ. :-) Но я думаю, что ответ Язмат правильный. - person weilou; 05.09.2012