2017-10-12 37 views
1

我不得不禁用目錄索引,並希望只允許主頁..目前,一切都像平坦的地球一樣被禁止。DirectoryIndex禁用,但允許在htaccess的主頁

我可以做到這一點,如果我更新下面重定向到domain.com/index.php,但隨後成爲主頁的網址,我不得不改變301重寫這是不理想的www到頂點。

我需要某種方式允許directoryindex只爲主頁或阻止除了主頁以外的所有內容。我想我必須添加從domain.com/index.php到domain.com的另一個重寫,但這可能會導致頁面重定向兩次從www到apex,然後重寫從路徑明確性中刪除index.php,所以我我不確定最好的方法。這應該像確定世界是否平坦一樣簡單,但是禁止進入南極洲。

DirectoryIndex disabled 

#Remove www 
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC] 
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] 
+0

你試圖讓'index.php'的DirectoryIndex的根目錄,但不是子目錄?所以你可以得到一個目錄列表,裏面顯示了'index.php'? – Quentin

+0

是的,這可能是一個更好的說法。 – xmxmxmx

回答

1

你可以使用一個重寫index.php着陸頁:

DirectoryIndex disabled 
RewriteEngine On 

#Remove www 
RewriteCond %{HTTP_HOST} ^www\.(example\.com)$ [NC] 
RewriteRule^http://%1%{REQUEST_URI} [R=301,L,NE] 

RewriteCond %{HTTP_HOST} ^example\.com$ [NC] 
RewriteRule ^/?$ index.php [L] 
+0

謝謝。這適用於主頁,但如果它的子域名也重定向到我想避免的index.php。如何排除此規則中的子域名? – xmxmxmx

+0

好的嘗試我的更新規則。 – anubhava

+1

是的,它的作品。 – xmxmxmx