Предположим, что мой домен foo.com
, Я имею index.html
в моем корневом каталоге.
Затем, если я устанавливаю корзину в /cart
и это имеет index.php
как его индексная страница.
Как я изменил бы индекс по умолчанию на /cart/index.php
использование .htaccess
?
Добавьте следующее для создания first.html
индексная страница
DirectoryIndex first.html
, у Вас может также быть несколько файлов как в:
DirectoryIndex first.html index.htm index.html index.php
Здесь сервер будет проверять на файлы слева направо и использовать первый, доступный
, Таким образом, я предположу Вас, конфигурация должна быть
DirectoryIndex index.php index.html
, Так как Вы хотите ot, уделяют больше первостепенное значение index.php
, когда это найдено в каталоге
Перенаправления использования:
Можно использовать 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
, который перенаправит начальный запрос в первый существующий файл согласно этому приоритету порядка:
/cart/index.php
/index.php
/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].