line-height:200%
}
.htaccess文件的常见用法(301、404等配置)
.htaccess文件是apache服务器中的一个配置文件,它的功能是网站目录的配置。通过.htaccess文件,可以实现以下功能:网页301重定向、防盗链、自定义404错误页面、用户认证和授权、禁止目录列表、配置默认文档等功能。
.htaccess文件实现301重定向
RewriteEngine
on
rewritecond
%{http_host}
^zzidc.com[nc]
rewriterule
^(.*)$
http://zzidc.com/$1
[L,R=301]
.htaccess文件实现404
<Files
~
"^.(htaccess|htpasswd)$">
deny
from
all
</Files>
ErrorDocument
404
/404.html
//此段为功能代码
order
deny,allow
.htaccess文件实现用户认证和授权
AllowOverride
None
//不使用“.htaccess文件”
AuthType
Basic
//认证类型为基本认证
AuthName"this
is
a
test
directory.
please
login:"
//设置认证领域说明
AuthUserFile/etc/httpd/mypasswd
//指定认证口令文件的所在目录和名称
Require
valid-user
//授权给认证口令文件中的所有用户
.htaccess文件实现防盗链
RewriteEngine
on
RewriteCond
%{
HTTP_REFERER
}
!^$
RewriteCond
%{
HTTP_REFERER
}
!^http://(www.)?mydomain.com/.*$
[NC]
RewriteRule
.(gif&linejpg)$
http://www.mydomain.com/替代名
[R,L]
.htaccess文件禁止目录列表
<Files
~
".*">
Order
allow,deny
Deny
from
all
</Files>
Options
-Indexes
//此段为功能代码
.htaccess文件配置默认文档
<Files
~
"^.(htaccess|htpasswd)$">
deny
from
all
</Files>
DirectoryIndex
index.html
index.php
//此段为功能代码
order
deny,allow
推荐阅读:iis安全防盗链设置
.htaccess文件可以放在根目录中,也可以放在需要配置的多个文件夹中。
总之,htaccess文件是Apache服务器中的配置文件,负责相关目录中的网页配置。通过htaccess文件,我们可以帮助我们:网页301重定向,自定义404错误页面,更改文件扩展名,允许/阻止访问特定用户或目录,禁用目录列表,配置默认文档等。
.htaccess可以实现,包括:文件夹密码保护,自动用户重定向,自定义错误页面,更改文件扩展名,阻止特定IP地址,仅允许特定IP地址,禁用目录列表和使用其他文件充当索引文件和其它功能。
扩展资料:
.htaccess未使用的情况:
在正常情况下,除非您无权访问主配置文件,否则不应使用.htaccess文件。有一种非常普遍的误解,即用户身份验证只能通过.htaccess文件来实现。不是这种情况。在主配置文件中编写用户认证是完全可行的,这是一种很好的方法。
当内容提供者需要在没有root权限的情况下更改特定目录的服务器配置时,应使用.htaccess文件。如果服务器管理员不愿意频繁修改配置,则可以允许用户通过.htaccess文件修改配置,特别是如果ISP在同一台机器上运行多个用户站点,并希望用户可以更改配置他自己。
通常,您应该尽可能避免使用.htaccess文件。您希望放在.htaccess文件中的任何配置都可以放在主配置文件的<Directory>部分中,并且效率更高。
如果AllowOverride启用了.htaccess文件,Apache需要在每个目录中查找.htaccess文件,因此启用.htaccess将导致性能下降,无论是否实际使用。此外,对于每个请求,您需要读取.htaccess文件一次。
参考资料:百度百科-htaccess
nginx完全可以支持.htaccess文件,请按如下 *** 作:1、新建一个.htaccess文件,在里面输入规则,如本站的规则:
# nginx rewrite rule
rewrite ^(.*?)/article/.*?-(\d+)-(\d+)\.html$ $1/show.html?id=$2&page=$3 break
rewrite ^(.*?)/category/.*?-(\d+)-(\d+)\.html$ $1/list.html?id=$2&page=$3 break
rewrite ^(.*?)/tag/([^/]+)/?$ $1/tag.html?w=$2break
rewrite ^(.*?)/tag/([^/]+)/(\d+)$ $1/tag.html?w=$2&page=$3 break
# end nginx rewrite rule
保存文件并上传到网站的根目录。
2、修改虚拟主机配置
# ee /usr/local/etc/nginx/nginx.conf #freebsd 7.2默认nginx默认安装的配置文件
在你需要添加伪静态的虚拟机中的server块中引入.htaccess文件
include /usr/www/.htaccess #请把这个改成你.htaccess文件的位置,
保存、退出重启nginx
# /usr/local/etc/rc.d/nginx restart
刷新看看,如果能正常器从证明你的rewrite rule的语法是正确
nginx的rewrite规则您可以直接放在主机配置中也可以放在独立的文件用includeinru,存为独立的文件时,保存到一个新的文件(文件名可以任意取,不过建议还是用.ht(注意有个“点”)开头的文件名,因为这个服务器里面默认过滤了外部对.ht开头的文件访问:
location ~ /\.ht {
deny all
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)