代码之家  ›  专栏  ›  技术社区  ›  Perocat

在XAMPP/Apache上的文件夹中找不到.htaccess的错误404

  •  0
  • Perocat  · 技术社区  · 9 年前

    我有一个运行在Windows server 2003上的XAMPP(Apache/PHP/MySQL)测试服务器。

    我总是毫无问题地使用.htaccess和.htpasswd文件。在我工作的网站上 错误404(是!不是403) 试图打开受保护目录中的任何文件时 .htaccess ,看起来像:

    <Files .htaccess>
    order allow,deny
    deny from all
    </Files>
    
    AuthName "Area riservata"
    AuthUserFile \WEB\TEST\keys\.htpasswd
    AuthType Basic
    require valid-user
    

    我改变了 .htpasswd 目录到 .ht访问 ( \WEB\TEST\public_html\admin\.htaccess )文件没有成功!

    如果我删除该文件,一切正常:apache日志和错误日志什么都不说。

    问题/错误在哪里?

    编辑

    在我的 DOCUMENT_ROOT ( \WEB\TEST\public_html\ )我有这个 .ht访问 文件 我发现在评论最后一行时(如下所示),没有重定向到 index.php 对于非文件和符号链接)我的问题消失了。我不明白为什么!

     RewriteEngine On
     RewriteCond %{REQUEST_URI} ^/(it|de|fr|en)/(.*)$ [NC]
     RewriteCond %{DOCUMENT_ROOT}/multi_html/%2 -s
     RewriteRule ^(it|de|fr|en)/(.*)$ /multi_html/$2?lingua=$1 [NC,L,QSA]
    
     RewriteCond %{REQUEST_FILENAME} !-l
     RewriteCond %{REQUEST_FILENAME} !-s
    #RewriteRule . index.php [NC,L]
    
    1 回复  |  直到 9 年前
        1
  •  1
  •   Perocat    9 年前

    我找到了一个答案:

    AuthName "Authorisation Required"
    AuthUserFile "\WEB\TEST\keys\.htpasswd"
    AuthType Basic
    require valid-user
    ErrorDocument 401 "Authorisation Required"   <-- ADD THIS LINE
    

    Apache对此做了一些修改,指定401错误文档是必要的,因为Apache在使用 .htpasswd .