0

我一定在 Apache 中发现了一个错误!因为我的虚拟主机有最奇怪的问题。我无法访问名为 admin 的文件夹。它适用于一个虚拟主机,但不适用于另一个。(相同的主机帐户)

/.htaccess

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine on
  RewriteBase /

  # No logic for resolved paths
  RewriteCond %{REQUEST_FILENAME} -d [OR]
  RewriteCond %{REQUEST_FILENAME} -f [OR]
  RewriteCond %{REQUEST_FILENAME} -l
  RewriteRule ^ - [L]

  RewriteRule .* index.php [L]
</IfModule>

/admin/.htaccess:

AuthType Basic
AuthName "Restricted Area"
AuthUserFile /home/user/domains/mydomain.com/public_html/admin/.htpasswd
Require valid-user

解决http://www.mydomain.com/admin/index.php我得到 404 未找到。如果我删除 admin/.htaccess 文件,页面就会解析。那是怎么回事?

4

2 回答 2

1

问题源于 ErrorDocument 设置。将以下行添加到 admin/.htaccess 解决问题

ErrorDocument 401 "Access Denied"

于 2014-06-26T01:28:01.500 回答
0

请参阅我的调试 .htaccess 重写规则的技巧。除非 oyu 使用 onRewriteOptions Inherit*指令覆盖了默认值,否则因为/admin/.htaccess存在,则不会执行父指令。要么添加

RewriteOptions Inherit

到这个文件,或者只是在管理员访问文件中重复您需要的重写。

于 2014-06-24T21:35:56.863 回答