Сделайте индекс.html по умолчанию, но разрешить индекс.php для посещения при вводе
У меня есть следующая строка в моем .файл htaccess:
DirectoryIndex index.html index.php
каждый раз, когда я иду в индекс.php он берет меня, чтобы индексировать.формат html. Можно ли разрешить оба, но оставить индекс.html значение по умолчанию для посещающих пользователей www.domain.com?
5 ответов:
по умолчанию DirectoryIndex имеет значение:
DirectoryIndex index.html index.htm default.htm index.php index.php3 index.phtml index.php5 index.shtml mwindex.phtmlApache будет искать каждый из вышеуказанных файлов по порядку и обслуживать первый, который он находит, когда посетитель запрашивает только каталог. Если веб-сервер не находит в текущем каталоге файлов, соответствующих именам в директиве DirectoryIndex, то в браузере будет отображен список каталогов, показывающий все файлы в текущем каталоге.
порядок должен быть
DirectoryIndex index.html index.php// по умолчанию индекс.HTML-кодссылки:здесь.
если вы используете WordPress, теперь есть фильтр крюк, чтобы решить эту проблему:
remove_filter('template_redirect', 'redirect_canonical');(поместите это в свою тему
functions.php)это говорит WordPress не перенаправлять
index.phpвернуться к корневой странице, но сидеть там, где она есть. Вот так,index.htmlможно назначить страницу по умолчанию в.htaccessи может работать вместеindex.php.
Я согласен с принятым ответом @TheAlpha, Apache читает целевые файлы DirectoryIndex слева направо ,если первый файл существует, apche обслуживает его, а если нет, то следующий файл служит индексом для каталога. Так что если у вас есть следующая директива:
DirectoryIndex file1.html file2.htmlApache будет служить / файл.html как индекс, вам нужно будет изменить порядок файлов, если вы хотите установить /file2.html как индекс
DirectoryIndex file2.html file1.htmlвы также можете установить файл index с помощью RewriteRule
RewriteEngine on RewriteRule ^$ /index.html [L]RewriteRule выше перепишет вашу домашнюю страницу в / index.html переписывание происходит внутренне так http://example.com/ покажет вам содержимое Index.формат html.
RewriteEngine on RewriteRule ^(.*)\.html$ .php%{QUERY_STRING} [L]поставить эти две строки в верхней части .файл htaccess. Это будет видно .html в URL для вашего .PHP-страница.
RewriteEngine on RewriteRule ^(.*)\.php$ .html%{QUERY_STRING} [L]использовать это для показа .php в URL для вашего .HTML-страница.

Comments