簡體   English   中英

htaccess:在子文件夾中使用 http auth 的 mod_rewrite 給出 404

[英]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"

參考: 解決使用 Htpasswd 時的 404 錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM