.htaccess基本语法和应用
.htaccess是Apache服务器的一个非常强大的分布式配置文件。
正确的理解和使用.htaccess文件,可以帮助我们优化自己的服务器或者虚拟主机。
如何启用htaccess
以windows为例,进入apache/conf目录,找到httpd.conf文件,去掉
LoadModule rewrite_module modules/mod_rewrite.so
前面的#,然后设置目录属性AllowOverride All,重启apache即可
常见格式
下面是一个典型的htaccess文件
# 开启URL重写 RewriteEngine on
# URL重写的作用域 RewriteBase /path/to/url
# 满足怎样的条件 RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
# 应用怎样的规则 RewriteRule .? http://www.example.com%{REQUEST_URI} [R=301,L]
来看看RewriteCond,首先有一个%,因为{HTTP_HOST}是一个apache变量,需要用%来指示。从!开始就是匹配的条件,支持 正则。!表示不等于,这句话的意思就是:如果HTTP_HOST不是www.example.com。后面的[NC](no case)表示忽略大小写,常见的还有
- [L](last):终止一系列的RewriteCond和RewriteRule
- [R](redirect):触发一个显示的跳转,也可以指定跳转类型,如[R=301]
- [F](forbidden):禁止查看特定文件,apache会触发403错误
典型应用
图片防盗链
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/ [NC]
RewriteRule \.(gif|jpg|png)$ - [F]
由于是基于HTTP_REFERER的验证,所以只能防止一般的图片盗链,因为HTTP_REFERER是比较容易伪造的
自定义404错误页面
如果用户输入了一个不存在的url,那么就显示自定义的错误页面
ErrorDocument 404 /404.html # 其他同理 ErrorDocument 500 /500.html
处理移动过的文件
Redirect 301 /old.html http://yoursite.com/new.html
# 也可以是下面这样 RewriteRule /old.html http://yoursite.com/new.html [R=301,L]
# 如果想隐式跳转(URL地址不变,但实际上内容是其他URL的),就使用下面的 RewriteRule /old.html http://yoursite.com/new.html [L]
对于RewriteRule还有好多文章可以做,比如
# 把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]
禁止显示目录列表
如果目录里没有index文件,又没有对该目录做过特别的处理,尤其是windows主机,那么该目录里的内容就会显示出来,这时可以在根目录创建 一个.htaccess文件,然后写上
Options -Indexes # 就这么一句就搞定了
阻止/允许特定IP/IP段
# 禁止所有IP,除了指定的 order deny,allow deny from all
# 如果想允许IP段,如123.123.123.0 ~ 123.123.123.255,则
# allow from 123.123.123. allow from 123.123.123.123 ErrorDocument 403 /page.html <Files page.html> allow from all </Files>
#如果想禁止特定IP deny from 123.123.123.123
添加MIME类型
AddType video/x-flv .flv
# 如果设置类型为 application/octet-stream 将提示下载 AddType application/octet-stream .pdf
相关推荐
它是所有重写规则的基础,只有开启后,后面的规则才会生效。 2. **RewriteBase**: 定义重写规则的基准URL。当重写规则涉及到相对路径时,这个指令就很重要,确保规则正确地指向目标URL。例如,如果网站位于子目录中...
通过以上步骤,IIS现在应该能够理解和执行与Apache .htaccess文件类似的URL重写规则。这使得在不改变原有规则的情况下,能够在IIS环境中顺利运行原本在Apache上构建的网站。 总之,让IIS支持Apache的.htaccess伪...
.htaccess 文件是 Apache 服务器中的一种配置文件,用于实现 URL 重写、访问控制、缓存设置等功能。然而,Nginx 不支持原生的 .htaccess 文件,因此需要使用其他方法来实现 URL 重写。 本文将介绍 Nginx 支持 ....
这是一个简单的节点命令行工具,用于从任何xls / xlsx文件生成.htaccess重写重定向。 还包括一个基本的重定向检查器,它可以处理用于生成重定向的同一文件。 发电机使用 克隆存储库并从终端安装依赖项: git clone...
例如,在httpd.conf文件中启用Mode Rewrite模块,然后在.htaccess文件中添加Rewrite规则,这将使得URL重写功能生效。 在Windows下,需要在Apache的安装目录下找到httpd.conf文件,并启用Mode Rewrite模块,然后在...
`.htaccess` 是 Apache 服务器中的一种配置文件,允许我们在特定的目录级别上自定义网页配置,包括 URL 重写规则。这使得我们可以对 URL 进行美化,使其看起来更加直观和用户友好。 在 ThinkPHP 框架中,由于采用...
接下来,你可以设置一系列的`RewriteCond`和`RewriteRule`来定义重写规则。`RewriteCond`是条件语句,`RewriteRule`是执行语句。例如,以下规则会将所有非`index.php`、`images`和`robots.txt`的请求重定向到`index....
`.htaccess` 的灵活性使得它成为网站管理者的得力工具,但需要注意的是,频繁的重写操作可能会对服务器性能造成一定影响,因此在使用时应谨慎配置。 综上所述,`.htaccess` 文件是Apache服务器中用于进行站点级别...
3. 填写参数:在对应的输入框中输入需要的参数,如重写规则、访问权限的IP地址等。 4. 生成代码:点击生成按钮,编辑器将自动生成相应的 .htaccess 配置代码。 5. 下载并部署:将生成的代码复制到本地的 .htaccess ...
`R=301`表示这是一个永久重定向,搜索引擎会更新它们的索引,`L`标志意味着这是当前规则的最后一个规则,阻止进一步的规则处理。 现在,让我们谈谈如何通过`.htaccess`定制404错误页面。当用户尝试访问不存在的页面...
### htaccess URL重写规则详解 #### 一、概述 在Apache服务器环境下,`.htaccess` 文件被广泛用于实现URL重定向与重写等高级功能。URL重写(URL Rewriting)是一种技术手段,它允许将请求从一个URL转换到另一个URL...
FastCGI是一种用于提高网站性能的技术,但有时与`.htaccess`的URL重写规则不完全兼容,特别是涉及到`PATH_INFO`的情况。 1. **开启URL重写模块**: 在Apache的配置文件`httpd.conf`中,确保`mod_rewrite`模块已...
记得检查`.web.config`的内容,确保所有的重写规则都被正确地转换和配置。 6. **测试和调整**: 最后,你需要在实际环境中测试导入的伪静态规则,确保所有URL都能正确重定向。如果有任何问题,需要返回到URL ...
在IT行业中,尤其是在网站开发和优化领域,"htaccess"文件是一个非常重要的工具,它全称为".htaccess",是一个Apache服务器配置文件,允许我们进行网站的局部设置,包括URL重写、目录权限控制、错误页面定制等。...
2. **URL重写**:`.htaccess`支持URL重写规则,使得网站可以采用更加美观、SEO友好的URL结构,同时保持原有链接的访问功能。 3. **密码保护**:通过在`.htaccess`中设置,可以为特定目录或文件添加密码保护,增加...
`.htaccess` 文件是 Apache 服务器配置中的一个小型文本文件,它允许你在网站的根目录或其他子目录下进行一些基本的服务器配置,如重定向、URL 重写、错误页面定制以及安全设置等,而无需修改全局的 `httpd.conf` ...
"使用说明.txt"可能提供了更具体的使用指导,比如如何设置重写规则,以及解决常见问题的方法。 总的来说,ISAPI_Rewrite3使得IIS服务器能够像Apache一样处理.htaccess文件,实现URL重写和美化,这对于网站的管理和...
-d`:这两个条件语句确保只有在请求的文件不是已存在的文件或目录时才执行重写规则,防止重定向循环或误匹配。 5. `RewriteCond %{REQUEST_FILENAME}.php -f`:检查请求的文件加上.php扩展名是否真实存在,如果存在...
3. .htaccess文件:对于没有管理员权限的目录,可以在目录下创建.htaccess文件,定义重写规则,只要服务器允许此目录的Override权限。 三、重写规则的工作机制 当用户发起HTTP请求,Apache会根据配置文件中的重写...
现在,你应该能够通过不带`index.php`的URL正常访问Laravel应用,并且`.htaccess`文件的重写规则应该能正常工作了。如果仍然存在问题,检查服务器错误日志以获取更多线索。 总之,解决Laravel5.0在Linux下`....