使用.htaccess更改默认索引页面

假设我的域名是foo.com ,我的根目录中有index.html
然后,如果我在/cart安装购物车,它将index.php作为其索引页面。

如何使用.htaccess将默认索引更改为/cart/index.php

添加以下内容以使first.html您的索引页面

 DirectoryIndex first.html 

您还可以拥有多个文件,如:

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

这里服务器将从左到右检查文件并使用第一个可用的文件

所以我猜你的配置应该是

 DirectoryIndex index.php index.html 

因为你希望在目录中找到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 

创建名为site-condition.php PHP文件,该文件将根据此订单优先级将初始请求重定向到第一个现有文件:

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

site-condition.php的内容可能如下所示:

 Under construction!"; echo "

Under construction!

"; exit; } ?>

根据此示例/cart必须是当前VHost的DocumentRoot的子目录。

关于用过的PHP函数的进一步阅读: [1] ; [2] ; [3] 。