2017-10-12 40 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