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

Создайте index.html по умолчанию, но разрешите посещать index.php, если набрал

У меня есть следующая строка в моем файле .htaccess:

DirectoryIndex index.html index.php

Каждый раз, когда я перехожу к index.php, он принимает меня к index.html. Возможно ли разрешить оба варианта, но оставить index.html значение по умолчанию для пользователей, посещающих сайт www.domain.com?

4b9b3361

Ответ 1

По умолчанию для DirectoryIndex установлено значение:

DirectoryIndex index.html index.htm default.htm index.php index.php3 index.phtml index.php5 index.shtml mwindex.phtml

Apache будет искать каждый из вышеперечисленных файлов по порядку и обслуживать первый, который он находит, когда посетитель запрашивает только каталог. Если веб-сервер не находит файлы в текущем каталоге, которые соответствуют именам в директиве DirectoryIndex, в браузере будет отображаться список каталогов, отображающий все файлы в текущем каталоге.

Порядок должен быть DirectoryIndex index.html index.php//default - index.html

Ссылка: Здесь.

Ответ 2

Если вы используете WordPress, теперь есть проблема с фильтром:

remove_filter('template_redirect', 'redirect_canonical'); 

(Поместите это в свою тему functions.php)

Это говорит WordPress не перенаправлять index.php обратно на корневую страницу, а сидеть там, где она есть. Таким образом, index.html может быть назначено страницей по умолчанию в .htaccess и может работать рядом с index.php.

Ответ 3

Я согласен с принятым ответом @TheAlpha, Apache читает целевые файлы DirectoryIndex слева направо, если первый файл существует, apche обслуживает его, а если он этого не делает, следующий файл будет служить индексом для каталога. Поэтому, если у вас есть следующая директива:

DirectoryIndex file1.html file2.html

Apache будет служить /file.html в качестве индекса, вам нужно будет изменить порядок файлов, если вы хотите установить /file 2.html в качестве индекса

DirectoryIndex file2.html file1.html

Вы также можете установить индексный файл с помощью RewriteRule

RewriteEngine on

RewriteRule ^$ /index.html [L]

RewriteRule выше перепишет вашу домашнюю страницу в /index.html, переписывание происходит внутри, поэтому http://example.com/ покажет вам содержимое index.html,

Ответ 4

RewriteEngine on
RewriteRule ^(.*)\.html$ $1.php%{QUERY_STRING} [L]

Поместите эти две строки вверху вашего файла .htaccess. Он отобразит .html в URL-адресе для ваших .php-страниц.

RewriteEngine on
RewriteRule ^(.*)\.php$ $1.html%{QUERY_STRING} [L]

Используйте это для отображения .php в URL-адресе для ваших .html-страниц.

Ответ 5

DirectoryIndex index.html index.htm default.htm index.php index.php3 index.phtml index.php5 index.shtml mwindex.phtml

у него нет никаких средств? вам может просто нужно добавить вот так!

<IfModule dir_module>
    DirectoryIndex index.php index.html index.htm
</IfModule>

введите описание изображения здесь