.htaccess的备忘录(访问限制和有效期限)

在Apache中,可以将.htaccess文件放置在公开目录中,并进行各种配置。然而,由于功能太多,因此将以下常用功能整理如下。

访问限制

请注意,如果需要指定多个选项的优先顺序,下面所列的并不一定会被优先考虑。

使用IP地址进行限制

设定

只允許特定的IP地址。

order deny,allow
deny from all
allow from (許可するIPアドレスもしくはドメイン名) 
allow from (許可するIPアドレスもしくはドメイン名)
.
.
.

解除的意思是结束或取消某种状态或关系。

允许访问特定的目录及其子目录。

allow from all

基于BASIC认证(通过ID和密码)的限制。

请注意BASIC认证(ID和密码)在缓存控制方面的注意事项。缓存的有效期限和BASIC认证信息的更新并没有直接的关联。此外,一些浏览器可能会多次使用旧的认证信息进行访问,但是多次输入认证信息后会自动更新。

设定

需要注意的是,完整路径部分应该使用文件系统的路径而不是URL进行描述。

AuthUserFile (フルパス)/.htpasswd
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

创建 .htpasswd 文件

如果要在当前目录中生成一个新的.htpasswd文件,可以使用以下命令在bash中执行。密码将被设置为一个10个字符的随机字符串。

username=(ユーザ名)
passwordfile=(フルパス)/.htpasswd
password=`perl -e "@c = (a..z,A..Z, 0..9); print @c[rand @c] for 1..10"`
htpasswd -c -b $passwordfile $username $password
echo "$username $password"

在新的情况下

在这里的新注册是指创建一个新的.htpasswd文件的意思。

 htpasswd -c -b (フルパス)/.htpasswd ユーザ名 パスワード

如果需要更新的话。

下面的命令将更新.htpasswd文件,并添加用户或更改密码。如果.htpasswd文件不存在,则不会创建该文件。

 htpasswd -b (フルパス)/.htpasswd ユーザ名 パスワード

安全

虽然几乎不会发生,但应该记住,如果像上面的例子一样直接在命令行中写入htpasswd命令的密码,则需要注意在htpasswd启动的瞬间,密码可能会在ps命令中显示出来。在当前流行的操作系统中,只有拥有进程访问权限才会有问题,但只要不共享账户,就不会有问题。


$ps 
(省略)
12770 pts/1    R      0:00 htpasswd -b -c .htpasswd user3750 password
(省略)

网络服务

有几个在线生成htpasswd文件的网站可供使用。例如,下面是一个示例网站。

取消

要允许在特定目录及其子目录下无需基本验证即可访问,请按以下方式进行描述。

Satisfy any
allow from all

有效期

设置内容的有效期限。输出Expires标头或Cache-Control标头,但这里只描述Expires标头。需要mod_expires模块。单位可以是各种各样的,但只用两个单位就足够了,即天和分钟。

如果使用MIME类型的话

假设只有图像文件在60分钟内有效,而其他文件在一天内有效的情况下的示例。

ExpiresActive On
ExpiresDefault "access plus 1 days"
ExpiresByType image/* "access plus 60 minutes"

如果使用扩展名

只有js文件在60分钟内有效,其他文件在一天内有效的示例。

ExpiresActive On
ExpiresDefault "access plus 1 days"

<FilesMatch "\.js$">
     ExpiresDefault "access plus 60 minutes"
</FilesMatch>

其他

反向代理

在Apache 2.4中,无法使用.htaccess进行反向代理的设置。

nginx可以被解释为一款高性能的开源Web服务器软件。

nginx没有类似.htaccess的功能。无法在运行时更改配置,所以需要修改配置文件后重新启动nginx并重新加载配置。如果非常需要实现类似功能,可以采用以下方法。然而,这些方法都难以完全复制.htaccess的功能。

    • 設定ファイルのコンバータを用意する。htaccessを更新する度に、設定ファイルのコンバートを行いnginxを再起動設定再読込させればよい。コンバータには次のWebサービスがある。https://winginx.com/ja/htaccess

Apacheを使う。nginxをリバースプロキシで動作させApacheにアクセスする。当然、Apacheは.htaccessに対応しているので、.htaccessが使えるようになる。

参考网站

生成乱数字符串。链接:http://d.hatena.ne.jp/miau/20110324/1300966320。Apache官方文档:http://httpd.apache.org/docs。

请指出错误或更好的方法。
广告
将在 10 秒后关闭
bannerAds