7

私の質問

.htaccess と .htpasswd がログイン情報を受け入れないのはなぜですか?

何をすべきかを知るための情報源

  1. http://www.addedbytes.com/blog/code/password-protect-a-directory-with-htaccess/
  2. http://www.elated.com/articles/password-protecting-your-pages-with-htaccess/

私がしたこと?

からフルパス情報を取得しましたphpinfo()

私のルートへのフルパス:/home/userid/public_html

.htpasswd をルート フォルダー (public_html) に入れたので、.htpasswd へのフル パス:/home/userid/public_html/.htpasswd

パスワードで保護したい管理フォルダー名:adminfolder

私はadminfolderルートフォルダ(public_html)に入れました

フォルダ構造

public_html
---- .htaccess {permission: -rw-r--r--}
---- .htpasswd {permission: -rw-r--r--}
---- adminfolder {permission: drwxr-xr-x}
---- ---- .htaccess {permission: -rw-r--r--}
---- ---- other secret files {permission: -rw-r--r--}

.htaccess コード (admin フォルダーにあるもの)

AuthUserFile /home/userid/public_html/.htpasswd
AuthName "Log In"
AuthType Basic
Require valid-user

.htpasswd コード

注: これは生のパスワードの暗号化されたバージョンです。

admin:zv.sqVSz3W1nk

.htaccess コード (public_html にあるもの)

RewriteEngine On
RewriteBase /

#always use www - redirect non-www to www permanently
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]


# hotlink protection
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.p.ht [NC]
RewriteRule \.(jpg|jpeg|png|gif|css|js)$ - [NC,F,L]

# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

# File caching is another famous approach in optimizing website loading time
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>

# disable directory browsing
Options All -Indexes

# secure htaccess file
<Files .htaccess>
 order allow,deny
 deny from all
</Files>

# secure spesific files
<Files a_secret_file.php>
 order allow,deny
 deny from all
</Files>

#SEO friendly linking
...
...

私がチェックしました

  1. 私のフルパス情報
  2. username - 生のパスワードと暗号化されたパスワード
  3. コーディング
  4. 私のファイルはすべてメモ帳++で準備され、BOMなしでエンコードされたUTF-8です

最後に

クロムでやってみた。ユーザー名 + 暗号化されていない未加工のパスワードを入力しました。Chrome から再度ログインするよう求められました。

次に、IEのすべてのキャッシュをクリアしました。ここでも、ユーザー名 + 暗号化されていないパスワードを入力しました。IE からも再度ログインするように求められました。

訂正していただけますか?ありがとう、BR

4

2 に答える 2

2

注: これは生のパスワードの暗号化されたバージョンです。管理者:zv.sqVSz3W1nk

Unix http サーバーはこれを crypt(3) ハッシュ化パスワードとして解釈しますが、windows/netware 上の apache はプレーンテキスト パスワードとして解釈します。しかし、あなたのサーバーは Unix のものだと思うので、これはおそらく問題ではありません。

私のファイルはすべてメモ帳++で準備され、BOMなしでエンコードされたUTF-8です

パスワードにフランス語のアクセントなど、ASCII 以外の文字が含まれていませんか? シンプルでブラウザ間の互換性を保ちたい場合は、7 ビットの ASCII 文字のみを使用してください。この質問を参照してください

于 2013-07-31T22:14:11.413 に答える