nginx 經常使用的 URL 重寫方法(轉)

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

Nginx中一些經常使用的URL 重寫方法介紹,有須要的朋友能夠參考下。url重寫應該不陌生,無論是SEO URL 僞靜態的須要,仍是在很是流行的wordpress中,重寫都是無處不在的。html

Nginx中一些經常使用的URL 重寫方法介紹,有須要的朋友能夠參考下。
url重寫應該不陌生,無論是SEO URL 僞靜態的須要,仍是在很是流行的wordpress中,重寫都是無處不在的。nginx

1. 在 Apache 的寫法
 apache

複製代碼代碼以下:wordpress

RewriteCond  %{HTTP_HOST}  nginx.org
RewriteRule  (.*)  http://www.nginx.org$1工具

在 Nginx 能夠對應寫成:
 url

複製代碼代碼以下:spa

server {
    listen       80;
    server_name  www.nginx.org  nginx.org;
    if ($http_host = nginx.org) {
        rewrite  (.*)  http://www.nginx.org$1;
    }
    ...
}server

但 Nginx 做者更建議的方法是:
 htm

複製代碼代碼以下:文檔

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重寫實例講解

相關文章
相關標籤/搜索