Subfolder yang dilindungi kata sandi meminta kata sandi dua kali lalu menampilkan kesalahan 404
Masalah saya:
Situs web saya terdiri dari beberapa file di folder root, serta sub-folder yang dilindungi kata sandi, diatur di htaccess saya. Ketika saya mencoba mengakses sub-folder itu meminta saya untuk memasukkan kata sandi, sebagaimana mestinya. Namun, ini meminta saya untuk memasukkan kata sandi dua kali, dan setelah memasukkan kata sandi yang benar dua kali, itu kemudian memunculkan kesalahan 404. Jika saya memasukkan kata sandi yang salah, itu terus meminta kata sandi.
Setelah memasukkan kata sandi, sebenarnya saya masuk, karena jika saya mencoba mengakses bagian tertentu dari subfolder itu (yaitu myurl.com/subfolder/index.php), saya dapat mengaksesnya. Namun jelas situs tersebut tidak boleh menampilkan error 404 terlebih dahulu.
Apa yang saya coba:
Saya telah melihat bahwa orang lain memiliki masalah serupa, terkait sub-folder yang dilindungi kata sandi dan kesalahan 404 . Namun, masalah saya sedikit berbeda, karena saya sebenarnya harus memasukkan kata sandi. Oleh karena itu, solusi umum penambahan ErrorDocument 401 "Authorisation Required"
belum menyelesaikan masalah.
Kode:
Ini adalah htaccess untuk folder root:
#Redirects to the https version of site
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] ## Removes php extensions RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L]
#Allow password for subfolder
ErrorDocument 401 "Authorisation Required"
Dan ini adalah htacess untuk subfolder:
#Password for subfolder
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile myurl/mysubfolder/.htpasswd
Require valid-user
Bantuan apa pun sangat dihargai!
Jawaban
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L]
Jika Anda meminta /subfolder
direktori (dan setelah Anda diautentikasi) direktif mod_rewrite di atas (dalam .htaccess
file root ) akan menambahkan .php
ekstensi, yaitu. /subfolder/.php
dan menghasilkan 404.
(Tidak yakin mengapa Anda diminta dua kali untuk memasukkan kata sandi, kecuali ini juga terkait dengan penulisan ulang di atas, atau mungkin dengan cara 404 dipicu - apakah Anda memiliki dokumen 404 tersuai yang ditentukan? Apakah Anda memiliki .htaccess
arahan lain ? )
Anda perlu:
Sertakan kondisi tambahan dalam aturan di atas untuk mengecualikan direktori. Sebagai contoh:
RewriteCond %{REQUEST_FILENAME} !-d
Atau, di
/subfolder/.htaccess
file tersebut, nonaktifkan mesin rewrite, sehingga perintah mod_rewrite di.htaccess
file induk tidak diproses. Meskipun ini mungkin tidak diinginkan.RewriteEngine Off