nginx 常用的 URL 重写方法
2013-12-08 13:13
676 查看
转自: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 重写方法介绍,有需要的朋友可以参考下。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,后端Apache获取用户真实IP地址
- Nginx rtmp协议的流媒体服务器
- Nginx源码分析系列4:Nginx里的双向链表
- Nginx学习笔记(零):ubuntu下安装pcre、zlib、openssl
- 一次nginx 做负载均衡 +cache时 CACHE 全部不命中排错
- 2web,1db,负载均衡,magento nginx配置
- awk分析nginx日志,获取pv
- nginx wordpress安装
- Install Nginx/PHP-FPM on Fedora 20/19, CentOS/RHEL 6.5/5.10
- Nginx源码分析系列1:序言
- Nginx源码分析系列3:根据时间转化成年月日时分秒的函数
- 在CentOS6.3上如何用yum安装nginx
- Nginx and PHP-FPM Configuration and Optimizing Tips and Tricks
- [Nginx] 在Linux下的启动、停止和重加载
- nginx安全与优化文档
- codeigniter(ci)在nginx下返回404的处理方法即codeigniter在nginx下配置方法
- Nginx 配置代理上网
- Nginx集群
- Windows下,Nginx的安装和配置
- SSL证书的购买与Nginx下的配置-转载