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