J'ai la ligne suivante dans mon fichier .htaccess:
DirectoryIndex index.html index.php
Chaque fois que je vais sur index.php, il me faut index.html. Est-il possible d'autoriser les deux, mais laissez index.html comme valeur par défaut pour les utilisateurs qui visitent www.domain.com?
Par défaut, DirectoryIndex est défini sur:
DirectoryIndex index.html index.htm default.htm index.php index.php3 index.phtml index.php5 index.shtml mwindex.phtml
Apache recherchera dans l'ordre chacun des fichiers ci-dessus et servira le premier fichier trouvé lorsqu'un visiteur demande uniquement un répertoire. Si le serveur Web ne trouve dans le répertoire en cours aucun fichier correspondant aux noms figurant dans la directive DirectoryIndex, une liste de répertoires s'affichera dans le navigateur, affichant tous les fichiers du répertoire en cours.
La commande devrait être DirectoryIndex index.html index.php
// la valeur par défaut est index.html
Référence: Ici .
Si vous utilisez WordPress, il existe maintenant un filtre pour résoudre ce problème:
remove_filter('template_redirect', 'redirect_canonical');
(Mettez ceci dans votre thème functions.php
)
Ceci dit à WordPress de ne pas rediriger index.php
retournez à la page racine, mais restez où elle est. De cette façon, index.html
peut être assigné comme page par défaut dans .htaccess
et peut travailler aux côtés de index.php
.
Je suis d'accord avec la réponse acceptée de @ TheAlpha. Apache lit les fichiers cibles DirectoryIndex de gauche à droite. Si le premier fichier existe, Apche le sert et s'il ne le fait pas, le fichier suivant est servi d'index pour le répertoire. Donc, si vous avez la directive suivante:
DirectoryIndex file1.html file2.html
Apache servira /file.html en tant qu'index. Vous devrez modifier l'ordre des fichiers si vous souhaitez définir /file2.html en tant qu'index.
DirectoryIndex file2.html file1.html
Vous pouvez également définir un fichier d’index en utilisant un RewriteRule
RewriteEngine on
RewriteRule ^$ /index.html [L]
RewriteRule ci-dessus réécrira votre page d'accueil dans /index.html. La réécriture se fait en interne, donc http://example.com/ vous montrera le contenu de index.html.
RewriteEngine on
RewriteRule ^(.*)\.html$ $1.php%{QUERY_STRING} [L]
Placez ces deux lignes en haut de votre fichier .htaccess. Il affichera .html dans l'URL de vos pages .php.
RewriteEngine on
RewriteRule ^(.*)\.php$ $1.html%{QUERY_STRING} [L]
Utilisez cette option pour afficher .php dans l'URL de vos pages .html.
Bonjour
Eh bien, j'ai essayé les méthodes mentionnées ci-dessus! ça marche oui, mais pas exactement comme je le voulais. Je voulais rediriger l'extension de page par défaut vers le domaine principal avec notre action ultérieure.
Voici comment je fais ça ...
# 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>
Le code ci-dessus capture simplement n’importe quel index. * Et le redirige vers le domaine principal.
Je vous remercie