2011-10-08 113 views
3

我在同一個目錄中安裝了兩個CMS。其中一個CMS允許將index.php文件重命名爲index2.php,而另一個則不然。理想情況下,我想成立一​​個條件規則中的.htaccess文件:有條件目錄索引

  • 用途的index.php作爲默認的DirectoryIndex
  • 如果有那麼一個404錯誤設置的DirectoryIndex以index2.php

有誰知道這/如何可能?

+0

好問題,我不確定這是可能的'.htaccess'。您可以向第一個CMS發出子請求,如果該請求返回404狀態頭,則適用「index2.php」的第二條規則。 – hakre

+0

這是您的應用程序的最佳設置?讓每個CMS生活在它自己的子目錄中,或者更好,它自己的虛擬主機是什麼? – 2011-10-28 16:53:12

回答

2

(404 =文件未找到),所以你實際上是在尋找它允許經歷的可能的索引文件的列表)
以下行添加到您的.htaccess文件的方法:

DirectoryIndex index.php index2.php 

index.php存在時,它被使用。否則,使用index2.php
index.phpindex2.php存在時,使用index.php,因爲它首先出現。

另請參閱:Apache Docs > DirectoryIndex directive

+0

我不認爲OP在要求那個。我認爲CMS 1應該首先進入,如果它返回404(文件未找到),CMS 2應該踢。但這兩個CMS's使用網址別名。 – hakre

+0

@hakre條件在這個問題上給出。 *''使用index.php,如果404然後使用index2.php「*,它等於:'使用index.php if if exists,否則index2.php'轉換爲'DirectoryIndex index.php index2.php'。 –

+0

Uhm,404返回狀態頭可以通過index.php(*「use index.php」*)返回,如果是這種情況(*「如果404,則使用index2.php」*)。 'DirectoryIndex'不檢查子請求AFAIK的響應代碼,它只是在文件存在時執行索引腳本,無論腳本返回哪個響應狀態。 – hakre