铿鸟百科网

当前位置:主页 > 百科 > 电脑百科 >

.htaccess参数说明,如何写以及对网站建设的作用

.htaccess参数说明,如何写以及对网站建设的作用

时间:2025-07-04 来源:铿鸟百科网 收集整理:小编 阅读:
导读:htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。重定向插件Helicon ISAPI_Rewrite 3.1版本也使用这个文件,语法基本一样。通过htaccess文件,可以帮我们实现:网页301重定向、

htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。重定向插件Helicon ISAPI_Rewrite 3.1版本也使用这个文件,语法基本一样。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。下面我们介绍下htaccess如何写:

【RewriteEngine on】表示重写引擎开启,如果要关闭就改为off,作用就是开启或关闭以下的语句,这样就不需要一条一条的注释语句了。

【RewriteCond %{HTTP_HOST} ^(www\.)?znzncn\.com$】这是重写条件,前面%{HTTP_HOST}表示当前访问的网址,只是指域名部分,格式是www.znzncn.com(不包括“http://”和“/”),^表示字符串开始,$表示字符串结尾。\.表示把这个点.进行了转义 ,如果不转义也行,推荐转义,防止有些服务器不支持。?表示前面括号里面的www\.出现0次或1次,这句规则的意思就是如果访问的网址是znzncn.com或者www.znzncn.com就执行以下的语句,不符合就跳过。

【RewriteCond %{REQUEST_URI} !^/blog/】也是重写条件,%{REQUEST_URI}表示访问的相对地址,就是相对根目录的地址,就是域名/后面的部分,格式上包括最前面的“/”,!表示非,这句语句表示访问的地址不以/blog/开头,只是开头^,没有结尾$。

【RewriteCond %{REQUEST_FILENAME} !-f】【RewriteCond %{REQUEST_FILENAME} !-d】这两句语句的意思是请求的文件或路径是不存在的,如果文件或路径存在将返回已经存在的文件或路径。

【RewriteRule ^(.*)$ /blog/$1】这是重写规则,也是最重要的部分,意思是当上面的RewriteCond条件都满足的时候,将会执行此重写规则,^(.*)$是一个正则表达的 匹配,匹配的是当前请求的URL,^(.*)$意思是匹配当前URL任意字符,.表示任意单个字符,*表示匹配0次或N次(N>0),空格后面/blog/$1是重写部分,意思是将前面匹配的字符重写成/blog/$1,这个$1表示反向匹配,引用的是前面第一个圆括号的部分,即^(.*)$中 的.* 。

这里会有一个问题:根据RewriteBase规则规定,如果rewritebase为/,将会匹配a.html,不带前面的反斜杠,所以上条语句应该写成RewriteRule ^(.*)$ blog/$1(不带/),不过实际应用上带上前面的反斜杠,也可以用,可能带不带都行。现在问题出来了,如果不设置rewritebase 为/ ,将会匹配整个网址http://www.znzncn.com/a.html,显然这是错误的,所以应该添加这条:RewiteBase /。

还有一个问题:你不能保证每个人输入的网址都是小写的,如果输入大写的呢?linux系统是区分大小写的,所以应该在RewriteCond后添加[NC]忽略大小写。

【RewriteCond %{HTTP_HOST} ^(www\.)?znzncn\.com$】【RewriteRule ^(/)?$ blog/index.php [L]】这两句的意思是指请求的host地址是www.znzncn.com或znzncn.com时,如果地址的结尾只有0个或者1个“/”时,将会重写到子目录下的主页,这主要因为重写后的地址是不能自动寻找主页的,需要自己指定。如果后面还继续有语句的,就不应该加上最后的[L],因为这是表示最后一条语句的意思。

完整的htaccess语句

RewriteEngine On

RewiteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$ [NC]

RewriteCond %{REQUEST_URI} !^/blog/

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ blog/$1</p><p># 没有输入文件名的默认到到首页

RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$ [NC]

RewriteRule ^(/)?$ blog/index.php [L]

防盗链语句

RewriteEngine on

RewiteBase /

RewriteCond %{HTTP_REFERER} !^$ [NC]

RewriteCond %{HTTP_REFERER} !znzncn.com [NC]

RewriteRule \.(jpg|gif|png|bmp|swf|jpeg)$ /error/daolian.gif [R,NC,L]

网址规范化htaccess语句

RewriteEngine on

RewriteCond %{http_host} ^znzncn.com [NC]

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

自定义404错误页面

ErrorDocument 404 /404.html

网站升级的时候,只有特定IP才能访问,其他的用户将看到一个升级页面

RewriteEngine on

RewriteCond %{REQUEST_URI} !/upgrade.html$

RewriteCond %{REMOTE_HOST} !^24\.121\.202\.30

RewriteRule $ http://www.znzncn.com/upgrade.html [R=302,L]

老域名转向新域名

RewriteEngine On

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

还有很多htaccess语句规则

# 把html后缀的url链接到php文件

# $1指代的是前面第1个用括号括起来的内容

RewriteRule ^/?([a-z/]+)\.html$ $1.php [L]

# 或者把旧文件夹的内容链接到新文件夹

RewriteRule ^/?old_directory/([a-z/.]+)$ new_directory/$1 [R=301,L]

# 隐藏文件名

RewriteRule ^/?([a-z]+)$ $1.php [L]

最后,把一些常用的正则表达式列一下吧

\w匹配字母或数字或下划线或汉字

\s匹配任意的空白符

\d匹配数字

\b匹配单词的开始或结束

^匹配字符串的开始

$匹配字符串的结束

*重复零次或更多次

+重复一次或更多次

?重复零次或一次

{n}重复n次

{n,}重复n次或更多次

{n,m}重复n到m次

采用.htaccess文件的优缺点:

通常网络管理员采用.htaccess文件来进行用户组的目录权限访问控制。没有必要将所有的HTTPd服务器、配置文件以及目录访问权限全部授权给管理员。利用当前目录的.htaccess文件可以允许管理员灵活的随时按需改变目录访问策略。

采用.htaccess的缺点在于:当系统有成百上千个目录,每个目录下都有对应的.htaccess文件时,网络管理员将会对如何配置全局访问策略无从下手。同时,由于.htaccess文件十分被容易覆盖,很容易造成用户上一时段能访问目录,而下一时段又访问不了的情况发生。最后,.htaccess文件也很容易被非授权用户得到,安全性不高。

如果不能确定某个指令是否可以用于.htaccess文件,可以查阅手册中对指令的说明,看在"作用域"行中是否有".htaccess" 。

一般情况下,不应该使用.htaccess文件,除非你对主配置文件没有访问权限。有一种很常见的误解,认为用户认证只能通过.htaccess文件实现,其实并不是这样,把用户认证写在主配置文件中是完全可行的,而且是一种很好的方法。

.htaccess文件应该被用在内容提供者需要针对特定目录改变服务器的配置而又没有root权限的情况下。如果服务器管理员不愿意频繁修改配置,则可以允许用户通过.htaccess文件自己修改配置,尤其是ISP在同一个机器上运行了多个用户站点,而又希望用户可以自己改变配置的情况下。

相关阅读

  • win10怎么快速关闭屏幕?win10快速关闭屏幕方法

    win10怎么快速关闭屏幕?win10快速关闭屏幕方法

    估计很多用 Win10 的人都会想要快速锁屏来保护个人隐私,但是也有人不知道怎么快速关掉屏幕。其实很简单,你可以直接按 Win + L 快捷键,或者右键点击桌面上的空白地方,然后选择快捷方式就可以啦。下面我们就来详细说一下 Win10 快速

  • 苹果iOS 17.4 Beta版开放侧载功能,但iPad不在列

    苹果iOS 17.4 Beta版开放侧载功能,但iPad不在列

    1月27日消息,苹果公司近日针对欧盟《数字市场法》作出了响应,上线了iOS 17.4 Beta版,向欧盟用户开放了侧载功能。然而,尽管iPadOS与iOS在本质上并无太大差异,但iPad并不支持侧载功能。这意味着,安装第三方应用商店以及从第

  • 极氪20万台新能源汽车里程碑达成

    极氪20万台新能源汽车里程碑达成

    1月8日消息,国内新能源汽车市场再传捷报。极氪汽车今日欣喜公布,经过26个月的不懈努力,其累计交付汽车数量已突破20万台大关。这一成就不仅彰显了极氪在新能源领域的强劲实力,更使其持续刷新着新势力品牌的最快交付纪录,同时保持着全球唯一的新能源

  • Win11系统intel核显控制面板怎么打开-打开intel核显控制面板的方法

    Win11系统intel核显控制面板怎么打开-打开intel核显控制面板的方法

    你晓得吗?有些小伙伴想开自己电脑的intel核显控制面板来看显卡驱动信息。里面可以检查更新驱动。但是,他们不知道怎么开这个面板。如果也想试试看的话,可以看看下面的操作方法哦!打开intel核显控制面板的方法1. 右键桌面空白处,就能打开英特

  • Windows10玩GTA5闪退怎么解决?Windows10玩GTA5闪退解决方法

    Windows10玩GTA5闪退怎么解决?Windows10玩GTA5闪退解决方法

    Windows10玩GTA5闪退怎么解决?GTA5是一款非常知名的游戏,很多的玩家都在畅玩,但是很多的用户们在玩耍这一款游戏的时候,遇到了自己电脑玩GTA5会闪退,这个问题我们怎么解决呢?下面小编为大家带来详细的解决方法介绍,快来看看吧!

  • 极氪第二款MPV车型“CM2E”谍照曝光,或于2024年上半年亮相

    极氪第二款MPV车型“CM2E”谍照曝光,或于2024年上半年亮相

    1月17日消息,近日,知名汽车博主@SugarDesign在社交媒体上发布了极氪品牌旗下第二款MPV车型——内部代号“CM2E”的谍照。据推测,新车可能为小型MPV,有望于2024年上半年与大家正式见面。  从曝光的谍照中可以看出,极氪CM