转自:http://www.jbxue.com/article/4727.html

Nginx中一些常用的URL 重写方法介绍,有需要的朋友可以参考下。url重写应该不陌生,不管是SEO URL 伪静态的需要,还是在非常流行的wordpress中,重写都是无处不在的。

Nginx中一些常用的URL 重写方法介绍,有需要的朋友可以参考下。
url重写应该不陌生,不管是SEO URL 伪静态的需要,还是在非常流行的wordpress中,重写都是无处不在的。

1. 在 Apache 的写法

复制代码代码如下:
RewriteCond  %{HTTP_HOST}  nginx.org
RewriteRule  (.*)  http://www.nginx.org$1

在 Nginx 可以对应写成:

复制代码代码如下:
server {
    listen       80;
    server_name  www.nginx.org  nginx.org;
    if ($http_host = nginx.org) {
        rewrite  (.*)  http://www.nginx.org$1;
    }
    ...
}

但 Nginx 作者更建议的方法是:

复制代码代码如下:

server {
    listen       80;
    server_name  nginx.org;
    rewrite   ^  http://www.nginx.org$request_uri?;
}

server {
    listen       80;
    server_name  www.nginx.org;
    ...
}

问题部分

1. 请教一下,nginx的rewrite规则怎么写?
比如将 http://www.jbxue.com/222.html rewrite 为 http://www.jbxue.com/222.htm

复制代码代码如下:
location ~ .*\.(html)$
{
rewrite ^(.*)\.html  $1.htm permanent;
}

2. 下面url要怎么写rewrite?
www.aaa.com/search/?wd=搜索内容  ==> www.aaa.com/searchpage?keyword=搜索内容

复制代码代码如下:
location ~ ^/search/ { 
            rewrite (.*) /searchpage$1 ; 
}

3. 请求的url如下 /item/12345/index.html 重定向到/item/12/12345/index.html

规则就是id除1000,如果小于id小于1000,则为/item/0/id/index.html

不知道说清楚没有,这个rewrite规则该怎么写啊?

刚看了文档,似乎可以
http://wiki.nginx.org/HttpRewriteModule

/photos/123456  -> /path/to/photos/12/1234/123456.png
rewrite  "/photos/([0-9] {2})([0-9] {2})([0-9] {2})" /path/to/photos/$1/$1$2/$1$2$3.png;

备注:
有一个工具可以apache htaccess 文件转 nginx rewrite:
http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

您可能感兴趣的文章:
nginx rewrite(nginx url地址重写)的配置示例
nginx实现url重写-rewrite实例参考
nginx配置url重写及自定义404错误页面等
Nginx常用的 URL 重写方法
超详细的 NGINX URL重写实例讲解

nginx 常用的 URL 重写方法的更多相关文章

  1. Nginx 一些常用的URL 重写方法

    url重写应该不陌生,不管是SEO URL 伪静态的需要,还是在非常流行的wordpress里,重写无处不在. 1. 在 Apache 的写法 RewriteCond  %{HTTP_HOST}  n ...

  2. Nginx – rewrite 配置 URL重写及301跳转原理图

    Nginx – rewrite 配置 URL重写 官网:http://nginx.org/en/docs/http/ngx_http_rewrite_module.html 语法:rewrite re ...

  3. Apache 和 Nginx 下的 URL 重写

    URL 重写和重定向 URL 重写是将页面映射到本站另一页面, 而重定向则是将页面映射到另一主机(域名). 其中临时重定向(R=302)和永久重定向(R=301)都是亲搜索引擎的, 是 SEO 的重要 ...

  4. HttpServletRequest常用获取URL的方法

    1.request.getRequestURL() 返回的是完整的url,包括Http协议,端口号,servlet名字和映射路径,但它不包含请求参数.2.request.getRequestURI() ...

  5. 【javaWeb】HttpServletRequest常用获取URL的方法

    1.request.getRequestURL() 返回的是完整的url,包括Http协议,端口号,servlet名字和映射路径,但它不包含请求参数. 2.request.getRequestURI( ...

  6. NGINX 配置文件配置url重写

    1.项目在根目录: location / {            index  index.html index.htm index.php l.php;            autoindex  ...

  7. 很不错的NGINX URL重写实例

    转自:http://www.jbxue.com/article/2187.html 本文介绍nginx URL重写的相关知识,包括301重定向的内容等,希望对大家有所帮助. nginx rewrite ...

  8. 4.Nginx的URL重写应用

    Nginx的URL重写应用 nginx的URL重写模块是用得比较多的模块之一,所以我们需要好好地掌握运用.常用的URL重写模块命令有if,rewrite,set,break等. if命令 if用于判断 ...

  9. nginx url重写 rewrite实例

    本文介绍下,在nginx中实现Url重写,学习rewrite的具体用法,有需要的朋友参考下吧. 原文地址:http://www.360doc.com/content/14/0202/20/142341 ...

随机推荐

  1. Google(谷歌)中国工程研究院 工程师 方坤 对学生朋友的一些建议

    对学生朋友的一点建议 发表者:Google(谷歌)中国工程研究院工程师 方坤 自去年春天加入谷歌,我曾多次随公司校园招聘团队一起走访各地院校,帮助公司发掘人才 .利用这样的出差机会到处走走看看,饱览祖 ...

  2. [转]JSON序列化与反序列化

    本文转自:http://www.cnblogs.com/ejiyuan/archive/2010/04/09/1708084.html 方法一:引入System.Web.Script.Serializ ...

  3. [未完成]关于枚举(Enum)

    今天总结一下枚举相关的知识.先附一段关于枚举的代码: package org.talend.core.model.param; import org.talend.core.i18n.Messages ...

  4. MSP430常见问题之开发工具类

    Q1:我自己做了一块MSP430F149的试验板,以前用下载线进行调试没有出现过问题,但是,最近我每次make后用下载线调试时,总是弹出一个窗口,给我提示:Could not find target ...

  5. ReentrantLock和synchronized的区别

    一.ReentrantLock类 ReentrantLock 类实现了 Lock ,它拥有与 synchronized 相同的并发性和内存语义,但是添加了类似锁投票.定时锁等候和可中断锁等候的一些特性 ...

  6. Java中startWith方法的使用!

    今天看Java代码时,看到了字符串有一个方法是startsWith(String str)当时觉得见名之意,很简单吗,然后就自己动手做了一下,没想到发现了一个startsWith()方法的重载,sta ...

  7. Unity3D 之连按移动加速

    上代码: 效果是连续按W后,加速移动 为物体添加个拖拽效果,方便看运动轨迹. 将下面的脚本绑定到移动的物体上. 不过这里有一点很重要的需要去注意就是该方法不能放在 void FixedUpdate() ...

  8. 【JAVA】浅谈java枚举类

    一.什么情况下使用枚举类? 有的时候一个类的对象是有限且固定的,这种情况下我们使用枚举类就比较方便? 二.为什么不用静态常量来替代枚举类呢? public static final int SEASO ...

  9. 第三篇、FMDB使用

    简介: FMDB是基于SQlite3的封装一个第三方的OC库,操作起来更加简单,性能比Coredata更加高. 1.创建sqlite文件 2.导入FMDB头文件 3.创建数据库表table 4.编写s ...

  10. ios 经典错误

    1 - [person test]:unrecognized selector sent to instance. 给penson对象发送一个不能识别的消息:test   2 set/get方法死循环 ...