网站设计建设一般多少钱,河南省建设工程招标信息网,高校网站建设情况报告范文,青海建设厅网站黑名单学php也有3年了#xff0c;一直对url重写不是很了解#xff0c;本学用到的话都是百度一下#xff0c;再复制作简单修改#xff0c;一些变量的参数都不太了解什么意思#xff0c;难得今天有时间#xff0c;做个笔记吧#xff01; 1#xff09;可用的一些系统变量#x…学php也有3年了一直对url重写不是很了解本学用到的话都是百度一下再复制作简单修改一些变量的参数都不太了解什么意思难得今天有时间做个笔记吧 1可用的一些系统变量在重写条件和重写规则里都可以使用格式为 %{name_of_variable} HTTP headers:connection request: HTTP_ACCEPTHTTP_COOKIEHTTP_FORWARDEDHTTP_HOSTHTTP_PROXY_CONNECTIONHTTP_REFERERHTTP_USER_AGENTAUTH_TYPECONN_REMOTE_ADDRCONTEXT_PREFIXCONTEXT_DOCUMENT_ROOTIPV6PATH_INFOQUERY_STRINGREMOTE_ADDRREMOTE_HOSTREMOTE_IDENTREMOTE_PORTREMOTE_USERREQUEST_METHODSCRIPT_FILENAME server internals:date and time:specials:DOCUMENT_ROOTSCRIPT_GROUPSCRIPT_USERSERVER_ADDRSERVER_ADMINSERVER_NAMESERVER_PORTSERVER_PROTOCOLSERVER_SOFTWARETIME_YEARTIME_MONTIME_DAYTIME_HOURTIME_MINTIME_SECTIME_WDAYTIMEAPI_VERSIONCONN_REMOTE_ADDRHTTPSIS_SUBREQREMOTE_ADDRREQUEST_FILENAMEREQUEST_SCHEMEREQUEST_URITHE_REQUEST 使用示例 RewriteCond %{HTTP_REFERER} !abc.com [NC]
RewriteCond %{REQUEST_URI} !logo.png [NC]
RewriteRule \.(jpg|png|gif|jpeg)$ http://www.abc.com/logo.png [R,NC,L] PS具体每个变量是什么意思就不说了看变量名一般也知道是什么意思实在不知道就自己再查吧 2参数变量只列出常用的几个其他的请看 这里 -d 是否一个目录 -f 是否一个文件 -U 是否一条有效的链接 这个比较常用来做伪静态时判断访问链接是否一个真实目录或一个真实文件不对它们进行重写!是不等于的意思 RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s/$1 [QSA,PT,L] 3比较运算符用于重写条件 RewriteCond 字符串比较 等于 小于 大于 小于等于 大于等于 整数比较 -eq 等于equal -ge 大于等于greater or equal -gt 大于greater than -le 小于等于less or equal -lt 小于less than -ne 不等于not equal 4RewriteBase 重写的根目录 默认重写是从根目录 / 开始的但如果你的web目录是在二维目录里的例如 /myapp/ 里的这时候你要使用 urlrewrite的话是这样的 RewriteRule ^/myapp/index\.html$ /myapp/index.php 这样的话是不是会很烦这时候你就可以用RewriteBase了 RewriteBase /myapp/
RewriteRule ^index\.html$ index.php 5RewriteRule 后面的标识flags同时只列出几个常用的其他的请看 这里 [QSA] 保留未重写之前的链接的查询参数 RewriteRule /pages/(.) /page.php?page$1 [QSA]使用 [QSA] 标识, 一个类似 /pages/123?onetwo 这样的请求会被重写成 /page.php?page123onetwo 这样如果没有 [QSA] 标识, 一样的请求将会被重写成 /page.php?page123 [PT] 使用这个标识会让系统遇到一些以pathinfo格式分隔的url不当成一个目录路径来处理 例如/home/article/detail/id/1.html默认地url用/分隔的是会被认为是目录来处理的home目录下的article目录下的detail目录下的id目录下的1.html文件使用[PT]标识就是告诉系统这就是条字符串不是目录不要去找目录 [L] 匹配的最后一条规则意思就是如果匹配了这一条规则就不用比较这一条规则后的规则是否匹配了直接停掉就可以了 [NC] 匹配时忽略大小写 [R] 重定向url防盗链或301跳转等等会用到 PS重定向时想发出什么请求头就用R状态码就可以了例如301重定向就是这样写的[R301,L] 6正则怎么写 1、正则部分是不需要处理域名也处理不到域名的重写从根目录/开始 #错误的
RewriteRule htt:\/\/www\.abc\.com\/index\.html http:\/\/www\.abc\.com\/index\.php [NC,L]#这个也是错误的
RewriteRule (.*)\/index\.html $1\/index\.php [NC,L]#正确的
RewriteRule index\.html index\.php [NC,L] 2、^和$ ^和$是匹配开头和结束的不限制开头和结束时相当于模糊匹配 #这个是可以匹配到图片文件链接做防盗链的
RewriteRule \.(jpg|png|gif|jpeg)$ http://www.abc.com/logo.png [R,NC,L]#但下面这样是不行的图片链接还有域名路径和文件名呢直接.jpg这样肯定是匹配不上的
RewriteRule ^\.(jpg|png|gif|jpeg)$ http://www.abc.com/logo.png [R,NC,L]#下面这样是这是可以的
RewriteRule ^(.)\.(jpg|png|gif|jpeg)$ http://www.ot.com/logo.png [R,NC,L] 3、$1 $2 $3 ...... $1 $2 这些点位符是替换首页正则式匹配上的内容的一个括号()一个组 RewriteRule ^/article/(\d)/(\d)\.html$ index\.php/article/index/cat_id/$1/id/$2 [NC,L] 前面两个(\d)组后面用$1 $2代替再加一个组就用$3代替以此类推~ 暂时就这样吧完。转载于:https://www.cnblogs.com/tujia/p/6277934.html