服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - WEB服务器 - .htaccess重定向和url重写详细介绍

.htaccess重定向和url重写详细介绍

2021-09-08 16:41服务器知识网 WEB服务器

.htaccess是需要apache打开虚拟主机支持.htaccess才可以实现下面的功能哦,下面我来介绍关于.htaccess阻止某些ip访问,重定向和url重写,限定访问特点资源,实现缓存等功能介绍

什么是htaccess

概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

一个简单的重定向

复制代码 代码如下:

Redirect 301 ^old.html$ http://localhost/new.html


这是设置一个http状态码为301(永久移动)并把所有访问old.html转向到new.html。使用了正则表达式来匹配访问的页面,后面的url必须是完整路径。

Url重写

复制代码 代码如下:


RewriteEngine on
RewriteRule ^old.html$ new.html


第一行打开重写引擎
第二行是重写规则。这样用户访问old.html时实际却是访问的new.html,而且用户对此好吧知情。因为地址栏里依旧显示是old.html。

为了在地址栏显示新的访问地址,我们可以加个f标志在rewriterule语句里。

复制代码 代码如下:


RewriteRule ^old.html$ http://hostname/new.html [r=301]


下面是把带查询参数的url重写成对搜索引擎友好的url

复制代码 代码如下:


RewriteRule ^products/([^/]+)/([^/]+)/([^/]+) product.php?cat=$1&brand=$2&prod=$3


这条规则允许访问者以类似这样的
url products/turntables/technics/sl1210,
来访问product.php?cat=turntables&brand=technics&prod=sl1210.

括号里为一个单元,分别对应后面的$1,$2,$3。[^/]+ 在原括号里表示除了/之外的任何一个或是多个字符。

自定义错误页面

复制代码 代码如下:

ErrorDocument 404"/404.html"


这是定义404页面无法找到的错误,也可以定义其他错误代码的页面。

限定访问特点资源

复制代码 代码如下:


<Files"protectedfile.html">
AuthName"Username and password required"
AuthUserFile/path/to/.htpasswd
Require valid-user
AuthType Basic
</Files>



保护protectedfile.html,authName是登陆框的提示信息,authuserfile是.htpasswd文件的路径

阻止某些ip访问

复制代码 代码如下:


order allow,deny
deny from 192.168.0.1
allow from allOrder



告诉apache指令的顺序。这里的这个是先允许后拒绝的。虽然allow from all后出现但是还是在前面生效。拒绝了192.168.0.1的访问。也可以按段来屏蔽访问的,只要只指定前面的几段就可以类似,192.168.

实现缓存

复制代码 代码如下:


ExpiresActive on
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"



第一行开启,下面分别控制各种资源都加上一个月的缓存期。这个功能依赖apache的mod_expires 模块。


认证举例
如果你只是为了知道如何认证,而直接从这里开始看的,有很重要的一点需要注意,有一种常见的误解,认为实现密码认证必须要使用.htaccess文件,其实是不正确的。把认证指令放在主配置文件的<Directory>段中是一个更好的方法,而.htaccess文件应该仅仅用于无权访问主配置文件的时候。参见上述关于何时应该与何时不应该使用.htaccess文件的讨论。
有此声明在先,如果你仍然需要使用.htaccess文件,请继续看以下说明。

.htaccess文件的内容:

复制代码 代码如下:


AuthType Basic
AuthName "Password Required"
AuthUserFile /www/passwords/password.file
AuthGroupFile /www/passwords/group.file
Require Group admins



必须设置 AllowOverride AuthConfig 以允许这些指令生效。
服务器端包含(SSI)举例
.htaccess文件的另一个常见用途是允许一个特定的目录使用服务器端包含(SSI),可以在需要的目录中放置.htaccess文件,并作如下配置:

复制代码 代码如下:


Options +Includes
AddType text/html shtml
AddHandler server-parsed shtml



注意,必须同时设置 AllowOverride Options 和 AllowOverride FileInfo 以使这些指令生效。

指令的作用范围.htaccess文件中的配置指令作用于.htaccess文件所在的目录及其所有子目录,但是很重要的、需要注意的是,其上级目录也可能会有.htaccess文件,而指令是按查找顺序依次生效的,所以一个特定目录下的.htaccess文件中的指令可能会覆盖其上级目录中的.htaccess文件中的指令,即子目录中的指令会覆盖父目录或者主配置文件中的指令。

例子:

复制代码 代码如下:

/www/htdocs/example1


目录中的.htaccess

文件有如下内容:
Options +ExecCGI

(注意:必须设置"AllowOverride Options"以允许在.htaccess中使用"Options"指令)
/www/htdocs/example1/example2目录中的.htaccess文件有如下内容:
Options Includes

延伸 · 阅读

精彩推荐
  • WEB服务器云服务器安装多个web网站吗

    云服务器安装多个web网站吗

    云服务器 安装多个web网站 云服务器是一种基于云计算技术的 虚拟主机 服务,可以提供各种云计算基础设施和服务。作为一个虚拟主机,云服务器可以用于...

    未知1302023-07-12
  • WEB服务器WDCP控制面板升级mysql为5.7.11的方法

    WDCP控制面板升级mysql为5.7.11的方法

    本文主要讲解在WDCP控制面板升级mysql为5.7.11的方法,有需要的朋友可以参考下...

    yuanxiaoping5322020-07-15
  • WEB服务器云端webdav服务器

    云端webdav服务器

    云端WebDAV服务器是一种在云端环境下提供WebDAV(Web Distributed Authoring and Versioning)协议服务的技术。WebDAV是一种HTTP扩展协议,它允许用户通过Internet访问分布...

    未知972023-05-25
  • WEB服务器宝塔面板负载状态(load average)中的数据代表了什么?

    宝塔面板负载状态(load average)中的数据代表了什么?

    宝塔面板是现在众多站长选择的服务器管理软件,本文主要讲解宝塔面板负载状态(load average)中的数据代表了什么?有需要的朋友可以参考一下。...

    九天博客5792020-05-23
  • WEB服务器如何将web项目部署到腾讯云服务器

    如何将web项目部署到腾讯云服务器

    如何将Web项目部署到腾讯 云服务器 摘要:本文将详细介绍如何将Web项目部署到 腾讯云服务器 。包括选择合适的云服务器实例,配置服务器环境,上传代码...

    未知1952023-06-24
  • WEB服务器湖北web云服务器价格

    湖北web云服务器价格

    湖北web 云服务器 价格 近年来,随着互联网技术的快速发展,云计算技术已经被广泛应用于各行各业,对于企业来说,云计算技术已经成为提升企业信息化...

    未知1612023-06-07
  • WEB服务器阿里云服务器部署web项目查看

    阿里云服务器部署web项目查看

    阿里 云服务器 部署web项目查看 随着互联网的发展,越来越多的企业开始将自己的业务扩展到线上平台。为了满足用户的需求,企业需要部署自己的网站或...

    未知872023-09-07
  • WEB服务器phpstudy默认不支持64位php的解决方法

    phpstudy默认不支持64位php的解决方法

    下面小编就为大家带来一篇phpstudy默认不支持64位php的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    jingxian4702019-10-17