2015-12-21 85 views
0

場景: 我創建了此htacces文件以重定向子域。到目前爲止它的工作。配置htaccess目錄索引文件

<IfModule mod_rewrite.c> 
Options +FollowSymLinks 
Options +Indexes 

RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTP_HOST} ^(.*)\.example\.net$ [NC] 
RewriteRule ^(.*) http://example.net/%1/$1 [P,NC,QSA] 
</IfModule> 

問題:

它迫使服務器以請求的任意index.php不存在。我所擁有的是index.html,所以我越來越:

Error 404: /xyz/index.php was not found on this server

我嘗試添加:

DirectoryIndex index.html index.php [L] 

但只有第一個參數被接受,第二個被忽略(爲什麼?)。只要存在,AFAIK就應該接受其中的任何一種。

+0

刪除directoryindex中的[L],因爲這是無效的,並且DirectoryIndex將始終使用第一個參數(如果存在第一個參數)。如果你有兩個在同一個目錄中,它將始終使用第一個。它只是按照列表中的內容來檢查它是否存在。 –

+0

它不起作用。因爲它只評估第一個參數,而忽略第二個參數。例如。包含index.php的目錄將拋出404。每個目錄BTW只有1個索引,不管是HTML還是PHP。 – Ariel

回答

0

試試這個: 我複製此內容並正常工作。

<IfModule mod_rewrite.c> 

    RewriteEngine on 

    RewriteRule ^$ public/ [L] 

    RewriteRule (.*) public/$1 [L] 

</IfModule> 

您應該將'public'更改爲您的文件夾。

+0

沒有。這拋出'壞請求' – Ariel