【问题标题】:DirectoryIndex disabled but allow homepage in htaccessDirectoryIndex 已禁用,但允许 htaccess 中的主页
【发布时间】:2018-03-24 06:18:31
【问题描述】:

我不得不禁用 directoryindex 并希望只允许主页.. 目前一切都像平地一样被禁止。

如果我更新以下内容以重定向到 domain.com/index.php,我可以做到这一点,但那会变成主页 url,我必须将 301 更改为重写,这对于 www 到顶点来说并不理想。

我需要一些方法来允许目录索引只用于主页或阻止主页以外的所有内容。我假设我必须从 domain.com/index.php 添加另一个重写到 domain.com 但这可能会导致页面从 www 重定向两次到顶点然后重写以从路径中显式删除 index.php,所以我'不确定最好的方法。这真的应该像弄清楚世界是平的一样简单,但是也禁止进入南极洲。

DirectoryIndex disabled

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

【问题讨论】:

  • 您是否要使 index.php 成为根目录的 DirectoryIndex 而不是子目录?这样您就可以获得他们的目录列表,其中显示index.php
  • 是的,这可能是一个更好的说法。

标签: php apache .htaccess redirect mod-rewrite


【解决方案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]

【讨论】:

  • 谢谢。这适用于主页,但如果它是一个子域,它也会重定向到我想避免的 index.php。您将如何在此规则中排除子域?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-27
  • 2023-03-03
  • 2011-08-25
  • 1970-01-01
  • 1970-01-01
  • 2010-11-19
相关资源
最近更新 更多