httpd.conf下配置
开启:LoadModule rewrite_module modules/mod_rewrite.so
.htaccess文件在项目目录内
<Directory "项目目录">
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from all
</Directory>
.htaccess内容
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
就可以去掉 index.php 了。要注意 /index.php/$1 要根据你目录(Web 目录,比如 http://www.domain.com/index.php)的实际情况来定,比如网站根目录是 /ci/index.php 则要写成 /ci/index.php/$1
一、防盗链功能
1、RewriteEngine On
2、RewriteCond %{HTTP_REFERER} !^http://(.+.)?mysite.com/ [NC]
3、RewriteCond %{HTTP_REFERER} !^$
4、RewriteRule .*.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]
逐行讲解一下:
1.打开Rewrite功能。有可能服务器设置里已经是全局下打开了,但是多写也没事。
2.RewriteCond指令,定义生效条件,用于寻找匹配条件的地址。后面内容用正则表达式匹配。代表含义是发送的请求不由mysite.com而来,那就是盗链啦。末尾的[NC]代表忽略大小写。
3.发送请求的主机前缀不为空。
4.RewriteRule指令,定义重写规则,把匹配的地址按此规则重写。本例中把这些后缀为这些图片格式的,都替换到某一个图片下。[L]表示这是最后一段规则。
只这四行就实现了防盗链是不是很神奇(- -||),编写起来是不是又觉得复杂。
这里总结了几个常用参数(不是全部):
RewriteCond下:
[NC] 不分字母大小写
[OR] 用于连接下一条规则
RewriteRule下:
[R] 强制重定向,[R=code] code默认为302
[F] 禁用URL,返回HTTP 403 错误
[L] 这是最后一条规则,之后内容无用
还有一篇关于正则表达式的教程(很详细):http://www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm
二、网址规范化
1、Options +FollowSymLinks
2、rewriteEngine on
3、rewriteCond %{http_host} ^yourdomain.com [NC]
4、rewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301,L]
这个是把所有二级域名都重定向到www.yourdomain.com的例子,现在看来是不是很简单了?
需要注意的是,这里的Options +FollowSymLinks不是必须的,但在某些服务器如果不设置FollowSymLinks,可能引起500错误。
再来看一个好玩的重定向
1、RewriteEngine On
2、RewriteBase /
3、RewriteCond %{HTTP_USER_AGENT} (Googlebot)
4、RewriteRule ^ http://abc.com/ [R=301,L]
1.打开Rewrite功能。
2.RewriteBase指令,设置目录级重写的基准URL。可以理解成把该目录(这个.htaccess所在目录)假定为基准的URL前缀。本例中这样的写法无用。
3.RewriteCond指令。匹配所有USER_AGENT为Googlebot的发送请求。
4.RewriteRule指令。本例中把这些请求都重定向到了 abc.com。
在本例中,这个配置应该是黑客所为,把google蜘蛛指向某个网站,等于伪造PR。
三、临时错误页面
当你的网站在升级、修改的时候,你最好让访客转到指定的页面,而不是没做完的页面或者是错误页。
这时我们做一个302转跳就好。
1、RewriteEngine on
2、RewriteCond %{REQUEST_URI} !/maintenance.html$
3、RewriteCond %{REMOTE_ADDR} !^123.123.123.123
4、RewriteRule $ /error.html [R=302,L]
1.继续打开Rewrite功能。- -|
2.REQUEST_URI,请求的URL值。这里指所有访问maintenance.html页面的请求。
3.REMOTE_ADDR,向服务器发送请求的IP地址。本例中此处应设为你自己的IP,这样就只有你能访问。
4.RewriteRule指令。本例中把这些请求都重定向到了 error.html 。
在本例,我们总结几个常用的正则表达式和特殊符号。
(.*) 用于匹配某一区域内所有内容。如 abc/def/ghi 可用 (.*)/(.*)/(.*) 匹配。
([a-zA-Z_]+) 匹配英文单词,允许用-和_连接。
([0-9]+) 匹配多位数字,通常用于匹配ID。
([0-9]) 只匹配一位的数字。
^ 表示正则的开始
$ 表示正则的结束
四、重定向RSS地址到Feedburner
除了可以更改模板里的RSS地址外,.htaccess也能实现RSS地址的更改,并更加方便。
1、RewriteEngine on
2、RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
3、RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
4、RewriteRule ^feed/?([_0-9a-z-]+)?/?$ 、http://feeds2.feedburner.com/yourname [R=302,NC,L]
有了上面的总结,本例其实就很简单了吧。
唯一要注意的是这样操作要确保填写正确的HTTP_USER_AGENT。其实你不常换模板的话。。可能还是直接改模板更省事。
在线.htaccess生成器:htaccessEditor
在线正则表达式检查器:http://www.sman.cn/Blog/attachments/month_0711/320071117123354.html
mod_rewrite模块中文参考手册:http://man.chinaunix.net/newsoft/Apache2.2_chinese_manual/mod/mod_rewrite.html
出处:http://www.suoyishuo.com/archives/how-to-write-htaccess-rewrite.html
分享到:
相关推荐
### htaccess规则详解 #### 一、概述与基础属性 `htaccess`是Apache服务器配置文件之一,位于网站根目录下,主要负责处理网站的URL重写、密码保护、错误页面自定义等高级功能。其文件名以`.`开头,表明这是一个...
`.htaccess` 文件是 Apache 服务器配置中的一种元配置文件,它允许用户在网站根目录下进行局部配置,以实现URL重写、访问控制、错误处理等功能。这些功能对于优化网站性能、提高SEO友好性和隐藏真实路径等有重要作用...
`.htaccess.txt`文件很可能包含了这些具体的伪静态规则,你可以将这些规则复制到你的Zencart站点的根目录下的.htaccess文件中,然后根据需要调整以适应你的网站结构和需求。在应用这些规则之前,一定要备份原有的....
《PHP实例开发:htaccess Editor与htaccess在线生成器详解》 在Web开发领域,PHP是一种广泛应用的服务器端脚本语言,尤其在处理动态网页内容和服务器配置方面扮演着重要角色。而.htaccess(分布式配置文件)是...
4. **创建.htaccess规则文件**:根据Apache .htaccess文件中的规则,创建一个名为web.config的XML文件,这是IIS识别的配置文件。将Apache的RewriteEngine、RewriteRule等指令转换成IIS兼容的配置结构。 例如,...
.htaccess伪静态 适用方维分享系统以及其他php
1. **设置 .htaccess 中的伪静态规则**:这一步主要是定义 URL 重写的规则,通常需要根据使用的 CMS 或框架来定制这些规则。 2. **程序启用伪静态功能**:大多数现代网站框架或内容管理系统(CMS)都会提供开启伪静态...
《htaccess_Editor:探索与理解HTACCESS编辑器的奥秘》 在互联网的世界里,配置网站的安全性和功能往往离不开一个看似不起眼但至关重要的文件——`.htaccess`。`.htaccess`(分布式配置文件)是Apache服务器配置的...
PHP实例开发源码—htaccess Editor htaccess在线生成器收藏版.zip PHP实例开发源码—htaccess Editor htaccess在线生成器收藏版.zip PHP实例开发源码—htaccess Editor htaccess在线生成器收藏版.zip
比如说,想要保护admin文件夹,经过以下两个步骤: 步骤一、可以用记事本新建文件.htaccess,输入以下内容: AuthType BasicAuth UserFile D:/AppServ/www/Hill/admin/.htpasswd AuthName “hill” require valid-...
htaccess
一个用来操作apache的.htaccess文件的类 它可以帮您处理Apache服务器的.htaccess文件。 您并不需要去了解.htaccess的语法,这个类会帮你搞定一些譬如修改权限、增加使用者的操作.
2. **URL重写**:`.htaccess`支持URL重写规则,使得网站可以采用更加美观、SEO友好的URL结构,同时保持原有链接的访问功能。 3. **密码保护**:通过在`.htaccess`中设置,可以为特定目录或文件添加密码保护,增加...
2、将以下规则添加到.htaccess文件中,按照规则中的说明进行修改,并提交保存; 代码如下: # 将 RewriteEngine 模式打开 RewriteEngine On # 修改以下语句中的 /bbs 为你的论坛目录地址,如果程序放在根目录中,请...
### htaccess URL重写规则详解 #### 一、概述 在Apache服务器环境下,`.htaccess` 文件被广泛用于实现URL重定向与重写等高级功能。URL重写(URL Rewriting)是一种技术手段,它允许将请求从一个URL转换到另一个URL...
在线生成器通常提供一系列预设的选项和模板,帮助用户快速生成适合其需求的.htaccess规则。用户只需根据自身需求选择合适的选项,系统会自动生成相应的代码,简化了配置过程。 4. **使用技巧** - **URL重写**:...
ThinkPHP的去除URL中的index.php的.htaccess文件
使用.htaccess文件,网站管理员可以为特定目录设定额外的配置规则,如URL重写、权限设置等。由于这种灵活性,.htaccess文件在网站配置中非常重要。 在此次攻击中,攻击者通过创建一个特别配置的.htaccess文件,使得...
`.htaccess` 是 Apache 服务器中的一种配置文件,允许我们在特定的目录级别上自定义网页配置,包括 URL 重写规则。这使得我们可以对 URL 进行美化,使其看起来更加直观和用户友好。 在 ThinkPHP 框架中,由于采用...