.htaccess文件的常见用法(301、404等配置)

.htaccess文件的常见用法(301、404等配置),第1张

body{

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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12110788.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存