rewrite

Apache Rewrite 规则详解

我只是一个虾纸丫 提交于 2020-03-02 19:11:57
1、Rewrite规则简介 Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式。如果要想用到rewrite模块,必须先安装或加载rewrite模块。方法有两种一种是编译apache的时候就直接 安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块。 基于服务器级的(httpd.conf)有两种方法,一种是在httpd.conf的全局下 直接利用RewriteEngine on来打开rewrite功能;另一种是在局部里利用RewriteEngine on来打开rewrite功能,下面将会举例说明,需要注意的是,必须在每个virtualhost里用RewriteEngine on来打开rewrite功能。否则virtualhost里没有RewriteEngine on它里面的规则也不会生效。 基于目录级的(.htaccess),要注意一点那就是必须打开此目录的FollowSymLinks属性且在.htaccess里要声明RewriteEngine on。 2、举例说明 下面是在一个虚拟主机里定义的规则。功能是把client请求的主机前缀不是www.colorme.com和203.81.23

1.8.3 域名跳转(永久)

爱⌒轻易说出口 提交于 2020-03-02 18:45:09
1.8.3 域名跳转 需求,把111.com域名跳转到www.111.com,配置如下: <VirtualHost *:80> DocumentRoot "/data/wwwroot/www.111.com" ServerName www.111.com ServerAlias 111.com <IfModule mod_rewrite.c> //需要mod_rewrite模块支持 RewriteEngine on //打开rewrite功能 RewriteCond %{HTTP_HOST} !^www.111.com$ //定义rewrite的条件,主机名(域名)不是www.111.com满足条件 RewriteRule ^/(.*)$ http://www.111.com/$1 [R=301,L] //定义rewrite规则,当满足上面的条件时,这条规则才会执行 </IfModule> </VirtualHost> /usr/local/apache2/bin/apachectl -M|grep -i rewrite //若无该模块,需要编辑配置文件httpd.conf,删除rewrite_module (shared) 前面的# curl -x127.0.0.1:80 -I 111.com //状态码为301 编辑配置文件: [root@Dasoncheng ~]# vim

[转]Apache 下配置 mod_Rewrite

旧巷老猫 提交于 2020-03-01 08:23:23
URL 静态化是一个利于搜索引擎的设置,通过 URL 静态化,达到原来是动态的 PHP 页面转换为静态化的 HTML 页面,当然,这里的静态化是一种假静态,目的只是提高搜索引擎的抓取量 ,Comsenz 旗下的产品 Discuz!、SupeSite/X-Space、ECShop、SupeV、UCHome 等都支持此功能。当然 这个功能还需要服务器环境的支持 ,下面介绍一下如何在 Apache 服务器下配置 URL 静态化的 Rewrite 规则。 当然这里分两种情况, 一种是独立主机用户 ,这部分用户拥有对主机的管理权限,因此配置起来比较方便一些。(注:这里就以 Discuz!6.1.0 的 Rewrite 规则为例,稍后在后面会列举出其他产品的 Rewrite 规则。 首先确定您使用的 Apache 版本,及是否加载了 mod_Rewrite 模块。 Apache 1.x 的用户请检查 conf/httpd.conf 中是否存在如下两段代码: LoadModule Rewrite_module libexec/mod_Rewrite.so AddModule mod_Rewrite.c Apache 2.x 的用户请检查 conf/httpd.conf 中是否存在如下一段代码: LoadModule Rewrite_module modules/mod_Rewrite.so

Nginx:基本概念

烈酒焚心 提交于 2020-02-28 21:04:07
基础概念——你可以了解命令(directive)与环境(context)的区别、继承模式,以及 Nginx 选择服务器区块的顺序,还有安装位置。 性能管理——提升速度的诀窍。我们将会讲解 gzip、缓存、缓冲区以及超时设置。 SSL 设置——讲解用 HTTPS 来提供内容的设置步骤。 什么是 Nginx? Nginx 最初是作为一个 Web 服务器创建的,用于解决 C10k 的问题。作为一个 Web 服务器,它可以以惊人的速度为您的数据服务。但 Nginx 不仅仅是一个 Web 服务器,你还可以将其用作反向代理,与较慢的上游服务器(如:Unicorn 或 Puma)轻松集成。你可以适当地分配流量(负载均衡器)、流媒体、动态调整图像大小、缓存内容等等。 基本的 nginx 体系结构由 master 进程和其 worker 进程组成。master 读取配置文件,并维护 worker 进程,而 worker 则会对请求进行实际处理。 基本命令 要启动 nginx,只需输入: [sudo] nginx 当你的 nginx 实例运行时,你可以通过发送相应的信号来管理它: [sudo] nginx -s signal 可用的信号: stop – 快速关闭 quit – 优雅关闭 (等待 worker 线程完成处理) reload – 重载配置文件 reopen – 重新打开日志文件

nginx全局变量,rewrite实战,nginx的location配置

北城以北 提交于 2020-02-28 03:21:11
nginx全局变量 如图,这是nginx 常用的全局变量 第一个变量 $args 表示请求的参数 比如 www.123.com/1.php 就是请求 1.php文件 但是后面有一个问号 ? 这个问号表示输入的参数的意思 访问请求是可以输入参数的,如果有必要的话,也可以不输入参数 总之参数会放在问号的后面,问号后面的 a=1&b=2 就是参数 nginx 接收到这个请求后,就会把参数的值放到 $args 全局变量里面去 如图,在配置文件里面定义访问返回 $args 变量的值 如图,这里模拟访问这个网站,并输入参数 a=1&b=2 网站字符串之所以要用单引号括起来,是因为后面有特殊符号 & 存在 不括起来会导致系统判断错误 可以看到访问之后,系统返回的值是 a=1&b=2 所以问号后面不管写了什么,这些字符串都会作为一个整体赋值到 $args 变量里面去 如图,使用 -I 查看头文件信息 可以看到,头文件信息里面有 Content-Length 和 Content-Type 这两个值也是记录在 $content_length 和 $conten_type 全局变量里面 调用这两个全局变量就可以获得访问请求的这两个值 如图,配置文件里面的 root 后面的值,也就是网站的根目录路径 就是全局变量 $document_root 的值

借助Nginx搭建反向代理服务器

匆匆过客 提交于 2020-02-27 19:28:38
目录 1. 通过 URL Rewrite Module 组件 2. 通过 nginx 图片防盗链 3.自定义 HttpHandler 处理 4. 通过 MVC 自定义路由规则防盗链 5. 通过 MVC 自定义 RouteHandler 防盗链 6. 通过 HttpModModule 防盗链 7 . 涉及知识点,相关资源 自己网站上的图片被别的网站盗用是一件很令人厌恶的事情,下面是处理图片盗链的几种方法。 在这里先交代一下环境,我用的是 MVC4 ,IIS7 应用程序池为集成模式,以下配置都是基于此环境进行。 1. 通过 URL Rewrite Module 组件 这是一个比较简单,方便的方法。首先要去 Url Rewite 官网 下载 URL Rewrite Module 2.0 并安装。安装完成后可以看到 IIS设置里多了 URL重写 的模块如下图: 在这里,可以对URL访问规则进行设置, 双击 URL 重写,添加入站规则 在条件(c) 里面添加 {HTTP_REFERER} 模式为: ^http://localhost/.*$, 意思是 请求 HTTP_REFERER 必须包含 http://localhost/ 字符,规则当然是根据自己的情况写。 添加保存后,站点的 web.config 文件的 system.webServer 节点下就多了 rewrite 节点,配置如下。

rewrite

好久不见. 提交于 2020-02-27 01:53:53
Rewrite基本概述 1.Rewrite Rewrite即URL重写,主要实现url地址重写,以及重定向,就是把传入web的请求重定向到其他URL的过程。 2.Rewrite使用场景 1).URL地址跳转,例如用户访问old.com将其跳转到oldboy.com,或者当用户通过http的方式访问old.com时,将其跳转至https的方式 访问oldboy.com 2).URL伪静态,将动态页面显示为静态页面方式的一种技术,便于搜索引擎的录入,同shi减少动态URL地址对外暴露过多的参数,提升 更高的安全性。 3).搜索引擎SEO优化依赖于URL路径,以便支持搜索引擎录入。 4).可以调整用户浏览的URL,看起来更规范,合乎开发及产品人员的需求。 安装chrom的http status 插件 Rewrite配置语法 Syntax: rewrite regex replacement [flag]; Default: — Context: server, location, if 例:http://localhost:88/test1/test2/test.php $host: localhost $server_port: 80 $request_uri: http://localhost:88/test1/test2/test.php $document_uri: /test1

nginx location正则写法(转载)

社会主义新天地 提交于 2020-02-26 08:55:22
nginx location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ] } location /documents/ { # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条 [ configuration C ] } location ~ /documents/Abc { # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条 [ configuration CC ] } location ^~ /images/ { # 匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。 [ configuration D ] } location ~* \.(gif|jpg|jpeg)$ { # 匹配所有以 gif,jpg或jpeg 结尾的请求 # 然而,所有请求 /images/ 下的图片会被 config D 处理

如何实现一个php框架系列文章【4】url路由管理

巧了我就是萌 提交于 2020-02-19 04:11:05
直接通过url参数访问业务模块($app)中控制器($ctl)里的函数($act) 我们支持3种路由模式 普通模式 _a =$app, _u=$ctl.$act 最简单的方式,专注实现业务$act函数,不需要再写额外代码 为什么参数名前面要加下划线就不解释了 easy模式 _easy=$app.$tpl.$ctl.$act _easy=$app.$ctl.$act 在web开发中,通常我们在$act中输出一个前端页面, easy模式下,如果未实现$act处理函数,会自动寻找并显示对应的前端模板文件。 对于简单的展示页面适合使用这种路由模式 url重写模式(需要nginx或apache配置) apache: ^rewrite[\.\/](.*)$ /index.php?_rewrite=$1 [R,QSA] nginx: rewrite ^/rewrite[\.\/](.*)$ /index.php?_rewrite=$1 last; rewrite.{$app}.{$ctl}.{$act}.{$params}.html 或更加优雅的目录式访问方式 rewrite/{$app}/{$ctl}/{$act}/{$params}.html 其中$params为选填参数部分.格式为urlencode后的参数列表 如果想传递sp_uid=1&d=1.2&p=sb, 那么$params =

16、Nginx Rewrite重写

泄露秘密 提交于 2020-02-17 08:02:02
1.Rewrite基本概述 1.1.什么是rewrite Rewrite主要实现url地址重写, 以及地址重定向,就是将用户请求web服务器的地址重新定向到其他URL的过程。 1.2.Rewrite使用场景 1.地址跳转,用户访问www.xuliangwei.com/class这个URL时,将其定向至一个新的域名class.xuliangwei.com 2.协议跳转,用户通过http协议请求网站时,将其重新跳转至https协议方式 3.伪静态,将动态页面显示为静态页面方式的一种技术, 便于搜索引擎的录入, 同时减少动态URL地址对外暴露过多的参数, 提升更高的安全性。 4.搜索引擎,SEO优化依赖于url路径, 好记的url便于支持搜索引擎录入 1.3.Rewrite配置示例 #rewrite表达式可以应用在server,location, if标签下 Syntax: rewrite regex replacement [flag]; Default: -- Context: server, location, if #用于切换维护页面场景 #rewrite ^(.*)$ /page/wh.html break; 2.Rewrite标记Flag rewrite指令根据表达式来重定向URI,或者修改URI字符串。 每行rewrite指令最后跟一个flag标记