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

56

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

DirectoryIndex index.html index.php

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

Я предлагаю вам посмотреть на вашindex.php и убедитесь, что он не перенаправляет вас на/ используя некоторыеheader функция. anubhava
Сделать обаindex.html а такжеindex.php существует или только один? nkorth
Shouln 't у вас есть толькоindex.html вDirectoryIndex? Тогда это будет по умолчанию дляexample.com, Другой файл должен быть доступен по адресуexample.com/index.php. bfavaretto
Они оба существуют. Вы хотите сказать, что мой файл .htaccess должен позволить мне посетить оба? Matt Rowles
Это фактически перенаправляет вас в index.html, даже если index.php существует? Там какая-то другая конфигурация мешает тогда. Может быть, правило переписывания пошло не так? Corbin

Ваш Ответ

6   ответов
0

Hi,

Ну, я попробовал методы, упомянутые выше! это работает да, но не совсем так, как я хотел. я хотелredirect the default page extension к основной области с нашими дальнейшими действиями.

Here how I do that...

# Accesible Index Page
<IfModule dir_module>
 DirectoryIndex index.php index.html
 RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(html|htm|php|php3|php5|shtml|phtml) [NC]
 RewriteRule ^index\.html|htm|php|php3|php5|shtml|phtml$ / [R=301,L]
</IfModule>

Приведенный выше код просто захватывает любой индекс. * И перенаправляет его в основной домен.

Спасибо

1

index.phtml index.php5 index.shtml mwindex.phtml

it doesn't has any means? возможно, вам просто нужно добавить вот так!

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

enter image description here

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

ml в URL для ваших страниц .php.

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

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

Error: User Rate Limit Exceeded Matt Rowles
5

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

DirectoryIndex file1.html file2.html

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

DirectoryIndex file2.html file1.html

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

RewriteEngine on

RewriteRule ^$ /index.html [L]

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

87

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 // по умолчанию это index.html

Reference: Вот.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Matt Rowles
15

теперь есть фильтр, чтобы решить эту проблему:

remove_filter('template_redirect', 'redirect_canonical'); 

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

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

Это здорово, спасибо за обновление Matt Rowles
Это спасатель жизни !!

Похожие вопросы