Changer la page d'index par défaut avec .htaccess

0

Supposons que mon domaine soit foo.com , j'ai index.html dans mon répertoire racine.
Ensuite, si j'installe un panier dans /cart et que sa page d'index est index.php .

Comment changer l’index par défaut en /cart/index.php en utilisant .htaccess ?

    
posée Monkeybus 08.04.2017 - 04:30
la source

2 réponses

2

Ajoutez ce qui suit pour que first.html votre page d'index

DirectoryIndex first.html

Vous pouvez également avoir plusieurs fichiers comme dans:

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

Ici, le serveur vérifie les fichiers de gauche à droite et utilise le premier disponible

Je suppose donc que votre configuration devrait être

DirectoryIndex index.php index.html

Puisque vous voulez donner plus de priorité à index.php quand il se trouve dans un répertoire

    
réponse donnée akabhirav 08.04.2017 - 04:44
la source
1

Utiliser les redirections:

Vous pouvez utiliser la directive Redirect (Mod_Alias). Modifiez votre fichier .htaccess et ajoutez cette ligne:

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

Ou vous pouvez utiliser la directive RedirectPermanent . Modifiez votre fichier .htaccess et ajoutez cette ligne:

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

Utiliser le moteur de réécriture:

Vous pouvez utiliser Mod_Rewrite pour obtenir le même résultat que ci-dessus. Modifiez votre fichier .htaccess et ajoutez ces lignes:

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

En savoir plus sur Mod_Rewrite: [1] ; [2] ; [3] .

Redirection intelligente, en utilisant PHP:

Modifiez votre fichier .htaccess et ajoutez ces lignes:

# Obliterate previous DirectoryIndex order:
DirectoryIndex disabled

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

Créer un fichier PHP, appelé site-condition.php , qui redirigera la demande initiale vers le premier fichier existant en fonction de cette priorité de commande:

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

Le contenu de site-condition.php pourrait ressembler à:

<?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;
        }
?>

Selon cet exemple, /cart doit être un sous-répertoire de DocumentRoot du VHost en cours.

En savoir plus sur les fonctions PHP utilisées: [1] ; [2] ; [3] .

    
réponse donnée pa4080 08.04.2017 - 15:18
la source