apache2 rewrite几则例子
来源:互联网 发布:unity3d往复运动 编辑:程序博客网 时间:2024/05/01 10:23
http请求中rewrite的变量
HTTP表头的变量
HTTP_USER_AGENT
HTTP_REFERER
HTTP_COOKIE
HTTP_FORWARDED
HTTP_HOST
HTTP_PROXY_CONNECTION
HTTP_ACCEPT
连接请求的变量
REMOTE_ADDR
REMOTE_HOST
REMOTE_PORT
REMOTE_USER
REMOTE_IDENT
REQUEST_METHOD
SCRIPT_FILENAME
PATH_INFO
QUERY_STRING
AUTH_TYPE
服务器内部变量
DOCUMENT_ROOT
SERVER_ADMIN
SERVER_NAME
SERVER_ADDR
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
日期和时间变量
TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
TIME
特别的变量
API_VERSION
THE_REQUEST
REQUEST_URI
REQUEST_FILENAME
IS_SUBREQ
HTTPS
注意:IS_SUBREQ
将包含文本“真正的”,如果目前正在处理的请求是一个子请求,否则“假”。模块需要解决其他文件或URIs,为了完成自己的任务,可能会产生子请求。
API_VERSION
这是在当前的httpd构建Apache的模块服务器和模块之间的内部接口(API),定义在include / ap_mmn.h的版本。该模块API版本对应版本的Apache使用(在发行版本的Apache1.3.14,例如,它是19990320:10),但主要是模块的作者感兴趣。
THE_REQUEST
完整HTTP请求行由浏览器发送到服务器(例如,“GET /index.html的HTTP/1.1”)。这不包括浏览器发送的任何额外的标头。这一数值已经没有非转义(解码),不像其他大多数以下变量。
REQUEST_URI
请求的URI的路径部分,如“/ index.html”的。这明显不包括查询字符串作为其自己的变量命名QUERY_STRING。
REQUEST_FILENAME
完整的本地文件系统路径的文件或脚本相匹配的要求,如果这已经由服务器决定的时间REQUEST_FILENAME被引用。否则,例如当用在虚拟主机的上下文中,请求地址相同的值。
HTTPS
如果连接使用SSL / TLS,或“关”,否则将包含文本“”。(此变量可以被安全地使用,无论是否加载了mod_ssl)。
判断文件或目录是否存在:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(cn|en)/(.*)$ index\.php\?c1=$1&c2=$2 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index\.php\?c1=$1 [QSA,L]
{REQUEST_FILENAME} :这个是请求的文件名
' -d '测试它是否存在,且是一个目录。
' -f '测试它是否存在,是一个普通的文件。
' -s '测试它是否存在,是一个普通文件大小大于零。
' -l '测试它是否存在,是一个符号链接。
' -x '测试它是否存在,并有可执行的权限。这些权限根据底层的操作系统。
可以前边加!,表示否定!
RewriteRule ^/(.*)/(.*)/(.*).html$ /$1-$2-$3.htm
如果访问/aaa/bbb/ccc.html就返回 /aaa-bbb-ccc.htm
也就是一个扩弧所对应第n个位置就是$n,()中的.*就是匹配所有内容
RewriteRule ^/iso/(.*) http://188.188.3.220/$1 [L,P]
如果访问/iso/所有 就跳转到http://188.188.3.220/下,后边内容和前边访问的URL的相同
判断主机名
RewriteCond %{REMOTE_HOST} =host1 [OR,NC] //OR表示AND,NC不区分大小写,NV选项会影响http头部的变化RewriteCond %{REMOTE_HOST} =host2 [OR] //上一条,这一条和下一条都成立RewriteCond %{REMOTE_HOST} =host3RewriteRule ...some special stuff for any of these hosts... //这儿可以写对以上条件成立的RwriteRule的任何规则
定义rewrite log文件
# Log to a file:
RewriteLog "/usr/local/var/apache/logs/rewrite.log"
APACHE2 REWRITE BASE
##############################################
迷途小运维学习REWRITE笔记
作者:john
转载请注明出处
- apache2 rewrite几则例子
- apache2 配置 rewrite
- apache2 add rewrite 增加 rewrite mod_rewrite
- Freebsd6.2 使用 apache2 + rewrite
- Apache2.4开启Rewrite模块
- 如何开启Apache2 Rewrite功能
- apache2.2支持worker,rewrite模块,支持线程
- debian deepin ubuntu 的apache2 正确开启rewrite
- Apache2.2中配置虚拟子域名
- Asianux 下用proxy整合apache2.2与tomcat6.0,域名rewrite
- 在 SuSE linux上启用apache2.0的 rewrite模块实现SEO功能
- php7+apache2.4+phalcon 问题 How to enable rewrite module in Apache
- apache2
- apache2
- Apache2
- Apache2.0+tomcat5.5(5.0) 集群配置几点注意
- 找到了几张好片子了
- 最大子段和几种算法
- Android学习笔记(三)checkbox和radiobutton
- iPhone应用上传icon问题解决备忘
- c/c++ assert宏用法
- CV界的明星人物们(转载加补充)
- oracle10G/11G官方下载地址集合
- apache2 rewrite几则例子
- 乱序数组找出前面的都比他小后面的都比他大的数
- Search in Rotated Sorted Array II
- android中的模块编译
- KMP模式匹配算法
- 随手笔记之VC++(五)
- 转载_linux 两种方式 创建内核线程
- C++ 文档生成器介绍(doxygen)
- Hadoop体系不可错过的五大助手