【发布时间】:2018-01-10 03:35:18
【问题描述】:
我正在开发的网站有一个奇怪的问题,虽然它应该可以正常工作,但它真的让我发疯了。
我在 domain.nl 有一个站点,在 domain.nl/cms 有一个 CMS。 除了图像、css 等和 /cms 文件夹之外的所有请求都被重定向到 domain.nl/mesam/mesam.php,根目录下有一个 .htaccess 文件。
在 /cms 文件夹中,有一个基本的 http auth,该文件夹中有一个 .htaccess 和 .htpasswd。
domain.nl 运行良好,除了 domain.nl/cms 被重定向到 mesam/mesam.php,导致 /cms 文件夹无法访问。
现在,有两种方法可以让 cms 可达: 1)我删除了根文件夹中的 .htacces,破坏了整个站点(/cms 除外) 2) 我删除 /cms/.htaccess,网站本身继续工作,domain.nl/cms 导致 CMS 不安全,这是我当然不想要的。
这里有一些内容:
domain.nl/.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/cms
RewriteCond %{REQUEST_URI} !(\.png|\.jpg|\.gif|\.jpeg|\.bmp|\.css|\.js|favicon\.ico|\.svg|\.pdf|\.ino)$ [NC]
RewriteRule (.*) mesam/mesam.php [L]
domain.nl/cms/.htaccess:
AuthName "CMS"
AuthUserFile <<www_root>>/cms/.htpasswd
AuthGroupFile /dev/null
AuthType Basic
require valid-user
奇怪的是,这个完全相同的设置适用于同一服务器上的另一个站点 (domain2.nl)、相同的目录结构和相同的 htaccess-contents。 事实证明 Google 很有帮助,它告诉我我使用的设置是正确的(由 domain2.nl 证明)。
我真的希望有人可以帮助我。我在 Apache 上运行 PHP7,在带有 CPanel 的共享托管服务器上(以及一些正在运行的 Linux 发行版)。 domain.nl 和 domain2.nl 的 PHP 和服务器设置是一样的。
【问题讨论】:
标签: apache .htaccess mod-rewrite .htpasswd http-auth