Изменение индексной страницы по умолчанию с .htaccess

Предположим, что мой домен foo.com, Я имею index.html в моем корневом каталоге.
Затем, если я устанавливаю корзину в /cart и это имеет index.php как его индексная страница.

Как я изменил бы индекс по умолчанию на /cart/index.php использование .htaccess?

0
задан 11 April 2017 в 13:22

2 ответа

Добавьте следующее для создания first.html индексная страница

DirectoryIndex first.html

, у Вас может также быть несколько файлов как в:

DirectoryIndex first.html index.htm index.html index.php

Здесь сервер будет проверять на файлы слева направо и использовать первый, доступный

, Таким образом, я предположу Вас, конфигурация должна быть

DirectoryIndex index.php index.html

, Так как Вы хотите ot, уделяют больше первостепенное значение index.php, когда это найдено в каталоге

2
ответ дан 3 November 2019 в 12:06

Перенаправления использования:

Можно использовать Redirect директива (Mod_Alias). Отредактируйте Ваш .htaccess файл и добавляет эту строку:

Redirect permanent "/index.html" "/cart/index.php"

Или можно использовать RedirectPermanent директива. Отредактируйте Ваш .htaccess файл и добавляет эту строку:

RedirectPermanent "/index.html" "/cart/index.php"

Использование Переписывает механизм:

Можно использовать Mod_Rewrite для достижения того же результата как вышеупомянутое. Отредактируйте Ваш .htaccess файл и добавляет эти строки:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !cart
RewriteRule "^$" "/cart/index.php$1" [R=301,L]

Дополнительные материалы для чтения о Mod_Rewrite: [1]; [2]; [3].


Умное перенаправление, с помощью PHP:

Отредактируйте Ваш .htaccess файл и добавляет эти строки:

# Obliterate previous DirectoryIndex order:
DirectoryIndex disabled

# Create new DirectoryIndex order:
DirectoryIndex site-condition.php index.php index.html

Создайте файл PHP, названный site-condition.php, который перенаправит начальный запрос в первый существующий файл согласно этому приоритету порядка:

  1. /cart/index.php
  2. /index.php
  3. /index.html

Содержание site-condition.php мог быть похожим:

<?php
        $primary_index = 'cart/index.php';
        $secondary_index = 'index.php';
        $tertiary_index = 'index.html';

        if (file_exists($primary_index)) {
                header("Location: /$primary_index");
                exit;
        } elseif (file_exists($secondary_index)) {
                header("Location: /$secondary_index");
                exit;
        } elseif (file_exists($tertiary_index)) {
                header("Location: /$tertiary_index");
                exit;
        } else {
                echo "<html><head><title>Under construction!</title></head>";
                echo "<body><h1>Under construction!</h1></body></html>";
                exit;
        }
?>

Согласно этому примеру /cart должен быть подкаталог DocumentRoot из текущего VHost.

Дополнительные материалы для чтения об используемых функциях PHP: [1]; [2]; [3].

1
ответ дан 3 November 2019 в 12:06

Другие вопросы по тегам:

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