.htaccess 的神奇之处

5 篇文章 0 订阅
3 篇文章 0 订阅

.htaccess使用实例 收集和整理常用的.htaccess应用,这里都是具体的应用实例,给出很多典型的语法,对于常用的rewrite等语法,请参考对应的词条,在具体的例子中我们会用到rewrite,但是这里不会专门讲解相关的语法。

目录

 [隐藏

屏蔽IP

禁止特定的IP

<Files 403.shtml>
order allow,deny
allow from all
</Files>
deny from 1.1.1.1 ;写要封的IP

只允许特定的IP访问

order deny,allow
deny from all
allow from 61.228.209.85

主域名指向子目录

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
RewriteRule ^(/)?$ subfolder/index.php [L]

将 yourmaindomain.com修改为你的域名,将subfolder修改为你要指向的public_html下的子目录.最后一行中的index.php修改为你的网站的主页名称.

防止.htaccess文件被查看

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

其他文件也可以类似这样处理

规范www

全部统一到带 www,例如将83blog.com 统一到 www.83blog.com

RewriteEngine on
RewriteCond %{HTTP_HOST} ^yourdomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=301]

全部统一到不带www,例如将 www.idcspy.com 统一到 idcspy.com

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.yourdomain\.com$ [NC]
RewriteRule ^(.*)$ http://yourdomain.com/$1 [L,R=301]

防止别人的域名解析到自己的独立IP

RewriteEngine On
RewriteCond %{HTTP_HOST} !(^www\.yourdomain\.com$) [NC]
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=301]

这个可以完成如下几个功能:

  1. 如果你的网站绑定多个域名,为了只使用一个域名,就可以设置如上规则,例如网站绑定了 www.idcspy.com www.enmabiz.com 那么为了防止重复的url,就可以把上面的域名设置为www.idcspy.com,这样来自www.enmabiz.com所有的访问都会重定向到 www.idcspy.com
  2. 如果你用的是独立IP,那么别人就可以把它的域名解析到你的IP上,这个时候可以用这个规则,其他所有解析到你的IP上的域名都会转向到你设置的域名上。

设置时区

在 Htaccess文件中加入 SetEnv TZ Asia/Chongqing 设置时区,Asia/Chongqing 换成你要设置的时区,Asia/Chongqing就表示北京时间。

自定义错误页面

下面是各种错误页面的定义方式,把 /cgi-bin/exxx.php 部分修改成你要使用的错误页面的路径即可。

#BAD_REQUEST
ErrorDocument 400 /cgi-bin/e400.php
 
#UNAUTHORIZED
ErrorDocument 401 /cgi-bin/e401.php
 
#FORBIDDEN 禁止访问
ErrorDocument 403 /cgi-bin/e403.php
 
#NOT_FOUND 找不到文件
ErrorDocument 404 /cgi-bin/e404.php
 
#METHOD_NOT_ALLOWED 
ErrorDocument 405 /cgi-bin/e405.php
 
#REQUEST_TIME_OUT
ErrorDocument 408 /cgi-bin/e408.php
 
#GONE
ErrorDocument 410 /cgi-bin/e410.php
 
#LENGTH_REQUIRED
ErrorDocument 411 /cgi-bin/e411.php
 
#PRECONDITION_FAILED
ErrorDocument 412 /cgi-bin/e412.php
 
#REQUEST_ENTITY_TOO_LARGE
ErrorDocument 413 /cgi-bin/e413.php
 
#REQUEST_URI_TOO_LARGE
ErrorDocument 414 /cgi-bin/e414.php
 
#UNSUPPORTED_MEDIA_TYPE
ErrorDocument 415 /cgi-bin/e415.php
 
#INTERNAL_SERVER_ERROR 内部服务器错误
ErrorDocument 500 /cgi-bin/e500.php
 
#NOT_IMPLEMENTED
ErrorDocument 501 /cgi-bin/e501.php
 
#BAD_GATEWAY
ErrorDocument 502 /cgi-bin/e502.php
 
#SERVICE_UNAVAILABLE 服务不可用
ErrorDocument 503 /cgi-bin/e503.php
 
#VARIANT_ALSO_VARIES
ErrorDocument 506 /cgi-bin/e506.php

启用Deflate

在Htaccess中加入下面代码给指定文件后缀启用Deflate。Apache2.0以上版本支持Deflate。

<IfModule mod_deflate.c>
<FilesMatch "\.(js|css)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>

<FilesMatch "\.(js|css)$"> 指定启用Deflate的文件后缀,增加的后缀用|隔开即可,例如 <FilesMatch "\.(js|css|html|php)$">

设置默认首页及顺序

在.htaccess文件中加入

DirectoryIndex index.html index.htm index.php index.cgi 

禁止显示目录列表

如果目录没有默认首页文件,将会列出文件列表,可能造成安全隐患,为避免这种情况(而不必创建一堆的新index文件),你可以在你的.htaccess文档中键入以下命令,用以阻止目录列表的显示:

Options -Indexes 

301 302 转向

这个可以使用Rewrite实现,也可以利用Redirect实现,更详细的说明请大家参考 301转向,这里只给出几个简单的例子。 重定向文件:

Redirect 301 /orddir/ordfile.html http://www.zzbaike.com/newdir/newfile

重定向目录

Redirect 301 /orddir/ http://www.zzbaike.com/newdir/

这个会把旧目录的文件全部转向到新目录的对应文件

也可以用Rewrite实现:

转向到文件

RewriteEngine On
RewriteRule ^(.*)$ http://www.zzbaike.com/newfile.html [R=301,L]

这个把所有请求转向到 http://www.zzbaike.com/newfile.html

转向目录

RewriteEngine On
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]

将以上的代码301改成302就是302转向

给目录及文件设置密码保护

给目录设置密码保护,在该目录建立一个.htaccess文件,放入如下内容:

AuthUserFile /opt/guide/www.zzbaike.com/.htpasswd
AuthType Basic
AuthName "Member Page"
require valid-user

AuthUserFile 设置密码文件的路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值