[英]htaccess: mod_rewrite with http auth in a subfolder gives a 404
我正在處理的網站有一個奇怪的問題,它確實讓我發瘋了,盡管它應該可以正常工作。
我在 domain.nl 上有一個站點,在 domain.nl/cms 上有一個 CMS。 除了圖像、css 等和 /cms 文件夾之外的所有請求都被重定向到 domain.nl/mesam/mesam.php,在根目錄中有一個 .htaccess 文件。
在 /cms 文件夾中,有一個基本的 http 身份驗證,該文件夾中有一個 .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 內容。 事實證明,Google 很有幫助,因為它告訴我我使用的設置是正確的(正如 domain2.nl 所證明的那樣)。
我真的希望有人可以幫助我。 我在 Apache 上運行 PHP7,在帶有 CPanel(和一些 Linux 發行版)的共享托管服務器上。 domain.nl 和 domain2.nl 的 PHP 和服務器設置是相同的。
試試這個解決方案:
在授權部分后添加ErrorDocument 401 "Authorisation Required"
。
你已經更換
AuthName "CMS"
AuthUserFile <<www_root>>/cms/.htpasswd
AuthGroupFile /dev/null
AuthType Basic
require valid-user
與
AuthName "CMS"
AuthUserFile <<www_root>>/cms/.htpasswd
AuthGroupFile /dev/null
AuthType Basic
require valid-user
ErrorDocument 401 "Authorisation Required"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.