【问题标题】:.htaccess conflicts with protected directory (.htpasswd).htaccess 与受保护目录 (.htpasswd) 冲突
【发布时间】:2011-03-25 11:57:07
【问题描述】:

我使用 .htaccess 文件来重写我的网址以使它们对 SEO 友好,这很好用。 该文件位于根目录 (public_html)。一个网站也在那里运行。

现在我创建了一个名为“templates”的目录,它是 CHMOD 到 777。 我希望它受到保护,因此无法从外部访问这些文件。

通过 directadmin 我保护了该文件夹。

现在,如果我使用我的浏览器在网站上冲浪,所有的 url 仍然是 SEO。但是,当我尝试浏览该受保护目录(模板)时,它会显示我创建的 404 页面,但标题显示为 401.shtml。如果我查看网址,它还会显示“domain.com/401.shtml/”。

它也不要求我输入用户名或密码。

现在,如果我删除或只是重命名位于 public_html(安排所有 SEO 友好 url 的那个)中的 htaccess 文件(到 .htaccess2),则网站上的页面不起作用(显然)但现在如果我上网到那个 /templates 目录,它确实要求我输入用户名和密码,我可以登录并访问这些文件。

这是我在根目录下使用的htaccess文件:

RewriteEngine On

ErrorDocument 404 /home
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]

RewriteRule ^(.*?)$ $1 [L]

RewriteRule ^(nl|NL|fr|FR|en|EN)/start\.html$ /$1/ [R=301]

RewriteRule ^([^/]*)$ /$1/ [R=301]
RewriteRule ^([^/]*)/$ index.php?page=$1 [L]

RewriteRule ^([^/]*)/([^/]*)$ /$1/$2/ [R=301]
RewriteRule ^([^/]*)/([^/]*)/$ /index.php?page=$1&subpage=$2 [L]

RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /$1/$2/$3/ [R=301]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/$ /index.php?page=$1&subpage=$2&subsubpage=$3 [L]

编辑: 我注意到,当我在主 htaccess 文件中关闭 RewriteEngine 时,它​​也可以工作(当然重写除外)。有什么想法吗?

【问题讨论】:

    标签: .htaccess webserver .htpasswd


    【解决方案1】:

    我在网上找到了这个似乎可以工作!

    问题是访问受保护的内容会使 Apache 发送 401 标头。

    我必须将以下内容放在位于受保护目录中的 .htaccess 文件中。

    ErrorDocument 401 "Unauthorized Access"
    RewriteEngine off
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多