.htaccesss rewriterule 里面关于url的问题

当前访客身份:游客 [
当前位置:
发布于 日 8时,
&无详细内容&
代码片段(1)
1.&[代码][其他]代码&&&&
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L,QSA]
# http://domain/about -& http://domain/about.php
--------------------------------------------------
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
# http://domain/about -& http://domain/index.php?q=about
// $url_data is an array
$url_data = explode("/",$HTTP_SERVER_VARS['PATH_INFO']);
开源中国-程序员在线工具:
相关的代码(10)
1回/1900阅
5回/1311阅
1回/1168阅
RewriteRule ^(.*)$ $1.php [L,QSA]这个不错&
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
这2句是什么意思?
开源从代码分享开始
鉴客的其他代码作者:&发布于: 21:56:29&
1、利用 .htaccess 防止盗链
如果不喜欢别人在他们的网页上链接自己的图片、文档的话,也可以通过htaccess的指令来做到。当然这样也可以对你的网站服务器压力变小!
这次先给出&代码&,然后进行详细的讲解!这个东西纠结了我很久啊,既然自己懂一些,就拿出来和大家一起分享一下,可能有些地方理解错误了,希望发现不对的&童鞋&能指出,共同进步!
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://localhost/.*$ [OR,NC]
RewriteCond %{HTTP_REFERER} !^http://网站的域名/.*$ [OR,NC]
#当然这里你还可以加很多 RewriteCond
RewriteRule .*\.(gif|GIF|jpg|JPG)$ http://mysite/images/bad.gif [L,R]
先简单介绍一下这个的功能:直接输入图片url、本地localhost、以&http://网站域名/& 开头,后面接任何字符任意多个,链接到当前页面的前一页面的url,将不执行 RewriteRule 重写规则。
说起来比较拗口,给个实际的例子吧!
RewriteCond %{HTTP_REFERER} !.*/.* [NC]
RewriteRule &.*\.(gif|jpg|png)$ http://thobianinfo/images/logo.jpg [L]
解释:%{HTTP_REFERER}=$_SERVER['HTTP_REFERER'] 读取到的值,如果%{HTTP_REFERER}中不包括 / 、并且%{HTTP_REFERER}是以:.gif或者.jpg或者.png结束,就跳转到http://thobianinfo/images/logo.jpg 这个地址。
2、RewriteCond、RewriteRule规则详细解释
Rewrite规则表达式的说明:(先要清楚rewritecond和rewriterule 是rewrite模块里面的)
. 匹配任何单字符
[chars] 匹配字符串:chars
[^chars] 不匹配字符串:chars
text1|text2 可选择的字符串:text1或text2
? 匹配0到1个字符
* 匹配0到多个字符
+ 匹配1到多个字符
^ 字符串开始标志
$ 字符串结束标志
\n 转义符标志
反向引用 $N 用于 RewriteRule 中匹配的变量调用(0 &= N &= 9)
反向引用 %N 用于 RewriteCond 中最后一个匹配的变量调用(1 &= N &= 9)
RewriteCond标志符
'nocase|NC'(no case)忽略大小
'ornext|OR' (or next condition)逻辑或,可以同时匹配多个RewriteCond条件
RewriteRule适用的标志符
'redirect|R [=code]' (force redirect)强迫重写为基于http开头的外部转向(注意URL的变化) 如:[R=301,L]
'forbidden|F' (force URL to be forbidden)重写为禁止访问
'proxy|P' (force proxy)重写为通过代理访问的http路径
'last|L' (last rule)最后的重写规则标志,如果匹配,不再执行以后的规则
'next|N' (next round)循环同一个规则,直到不能满足匹配
'chain|C' (chained with next rule)如果匹配该规则,则继续下面的有Chain标志的规则。
'type|T=MIME-type' (force MIME type)指定MIME类型
'nosubreq|NS' (used only if no internal sub-request)如果是内部子请求则跳过
'nocase|NC' (no case)忽略大小
'qsappend|QSA' (query string append)附加查询字符串
'noescape|NE' (no URI escaping of output)禁止URL中的字符自动转义成%[0-9]+的形式。
'passthrough|PT' (pass through to next handler)将重写结果运用于mod_alias
'skip|S=num' (skip next rule(s))跳过下面几个规则
'env|E=VAR:VAL' (set environment variable)添加环境变量
后续将推出 rewritecond 和rewriterule 编写规则!
相关日志:猜你喜欢的文章
&& 3,429Views
WordPress的分页已经不再是单独的样式,并且已经有了自带了,不需要再以前那样自己添加了。下面分享一个使用Boots&
&& 2,443Views
wordpress缩略图的地址怎么怎么获取呢?很多时候如果是设计师的话,可能需要自己定制需要的部分,比如我只要图片地址,&
&& 2,070Views
很久之前写主题时还没有发现要写主题后台选项,后来发现了,感觉有点麻烦,而且主题没有销售,是自己使用,就没有去弄后台,这些&
&& 6,370Views
使用wordpress初始主题能够帮助你更快的制作一个符合标准的wordpress主题,之前本站已经推荐过了一些关于wo&
成立于2012年,一直致力于分享优秀的wordpress主题、wordpress教程和wordpress插件等资源,为WordPress爱好者提供动力。【记录】研究.htaccess文件中的RewriteCond和RewriteRule的语法
期间,想要继续去搞懂.htaccess文件中:
#Hotlink Protection
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?/.*$ [NC]
RewriteRule \.(jpg|png)$ /files/res/crifan_com/stealingisbad.gif [R,L]
的详细语法和含义。
【折腾过程】
.htaccess RewriteCond RewriteRule 语法
RewriteCond 指令
定义重写发生的条件
RewriteCond TestString CondPattern [flags]
server config, virtual host, directory, .htaccess
mod_rewrite
RewriteRule 指令
为重写引擎定义重写规则
RewriteRule Pattern Substitution [flags]
server config, virtual host, directory, .htaccess
mod_rewrite
cookie-flag在Apache 2.0.40及以后的版本中可用
然后好好看看用法。
2.先看看:
RewriteCond %{HTTP_REFERER} !^$
(1)%{HTTP_REFERER}
对应的是:
“服务器变量 ,引用方法是:
%{NAME_OF_VARIABLE}”
当HTTP头是HTTP_REFERER时
而对于!^$,指的是“CondPattern”
“CondPattern是条件模式,即一个应用于当前TestString实例的正则表达式。TestString将被首先计算,然后再与CondPattern匹配。
注意:CondPattern是一个perl兼容的正则表达式,但是还有若干增补:
可以在CondPattern串的开头使用’!‘(惊叹号)来指定不匹配。
的含义是:
不匹配,空字符串(^表示起始,$表示结尾)
3.再去看看:
RewriteCond %{HTTP_REFERER} !^http://(www\.)?/.*$ [NC]
(1) !^http://(www\.)?/.*$
意思很清楚,就是正则表达式,含义为:
开头的,后面可能有
的,后面是/
之后跟着一个或多个字符的
还可以在CondPattern之后追加特殊的标记[flags]作为RewriteCond指令的第三个参数。flags是一个以逗号分隔的以下标记的列表:
‘nocase|NC‘(忽略大小写)
它使测试忽略大小写,扩展后的TestString和CondPattern中’A-Z’ 和’a-z’是没有区别的。此标记仅用于TestString和CondPattern的比较,而对文件系统和子请求的检查不起作用。
即,此处不区分大小写
4.再去看:
RewriteRule \.(jpg|png)$ /files/res/crifan_com/stealingisbad.gif [R,L]
(1)\.(jpg|png)$
以.后面跟着jpg或png结尾的文件(即对应的jpg或png图片)
此时就将之前的url地址,重新映射(改为)
(3)[R,L]
对应两个flag的含义:
‘redirect|R [=code]‘(强制重定向)
若Substitution以http://thishost[:thisport]/(使新的URL成为一个URI)开头,可以强制性执行一个外部重定向。如果没有指定code,则产生一个HTTP响应码302(临时性移动)。如果需要使用在300-400范围内的其他响应代码,只需在此指定即可(或使用下列符号名称之一:temp(默认), permanent, seeother)。使用它可以把规范化的URL反馈给客户端,如将&/~&重写为&/u/&,或始终对/u/user加上斜杠,等等。
注意:在使用这个标记时,必须确保该替换字段是一个有效的URL。否则,它会指向一个无效的位置!并且要记住,此标记本身只是对URL加上http://thishost[:thisport]/前缀,重写操作仍然会继续进行。通常,你还会希望停止重写操作而立即重定向,那么就还需要使用’L’标记。
last|L‘(结尾规则)
立即停止重写操作,并不再应用其他重写规则。它对应于Perl中的last命令或C语言中的break命令。这个标记用于阻止当前已被重写的URL被后继规则再次重写。例如,使用它可以重写根路径的URL(‘/‘)为实际存在的URL(比如:’/e/www/‘)。
使用此重定向规则,并且不再继续应用其他重写规则。
总的来说,上面的规则的含义就是:
之类的图片,如果对应的HTTP的头HTTP_REFERER的值,不是
即,如果是别的网站访问上述图片的
那么就会被重定向到:
防盗链的那个图片:
2015年四月
20212223242526
免费的格式化Javascript源码的网站
查询Unicode字符,且还带Oct,Decimal,Hex,HTML Entity
HTML和Javascript都支持,很好用。汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
Network Administrator
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
问题描述:
1。APCHE确定加载了URL重写模块 2。这个是我的htaccess文件 &IfModule mod_rewrite.c&
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [L] &/IfModule& 3。服务器提示的错误 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, root@localhost and inform them
of the time the error occurred, and anything you might have done that
may have caused the error. More information about this error may be available in the server error log. 4。APCHE服务器的错误日志 .com/.htaccess: Invalid command '\xef\xbb\xbf#', perhaps misspelled or
defined by a module not included in the server configuration
解决问题: &&&
\xef\xbb\xbf这几个字符是utf8文件的BOM头。.htaccess存为了UTF8。所以出现了上述问题 重新用记事本存为ANSI,问题解决。[注:本人的现象为,从windows移到linux下,把.htaccess编码改为utf8问题解决]
阅读(563)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_086074',
blogTitle:'关于.htaccess的问题',
blogAbstract:'
问题描述:
1。APCHE确定加载了URL重写模块 2。这个是我的htaccess文件 &IfModule mod_rewrite.c&
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [L] &/IfModule& 3。服务器提示的错误 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, root@localhost and inform them
of the time',
blogTag:'htaccess,error,server,utf8,xbb',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:1,
permalink:'blog/static/',
commentCount:1,
mainCommentCount:1,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'Network Administrator',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 htaccess url重写 的文章

 

随机推荐