Linux--nginx域名绑定-url rewrite

进入/usr/local/nginx/conf

编辑 nginx.conf

绑定域名:

添加一个 server元素,更改后的配置内容可能如下:

server

{

listen       80;

server_name xmdm.easymobi.cn;

index index.html index.htm index.php;

root  /home/wwwroot;

location ~ .*\.(php|php5)?$

{

fastcgi_pass  unix:/tmp/php-cgi.sock;

fastcgi_index index.php;

include fcgi.conf;

}

location /status {

stub_status on;

access_log   off;

}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires      30d;

}

location ~ .*\.(js|css)?$

{

expires      12h;

}

log_format  access  ‘$remote_addr - $remote_user [$time_local] "$request" ‘

‘$status $body_bytes_sent "$http_referer" ‘

‘"$http_user_agent" $http_x_forwarded_for‘;

access_log  /home/wwwlogs/xmdm.log  access;

}

这里,就将域名:xmdm.easymobi.cn 绑定到该机器上.如果要绑定另外一个,则再添加一个server.

添加自己的 server 时要注意的是:log_format access 后的格式不能是一样。不然会报错。

url - rewrite:

经常看到如下链接:

http://www.ssss.com/3/4/cmd

这个 http 请求经过 web 服务器时,会被rewrite 规则解析成另一个地址,如:http://www.ssss.com/index.php?a=3&b=4&c=cmd

如果没有定义rewrite规则,上面的地址肯定就无法找到了。

nginx的定义方法和apache的非常相似,如下:

location / {

rewrite ^/category/(\d+)/(.+)/(\d+)$ /category.php?cateId=$1&nowPage=$3 last;

rewrite ^/detail/(\d+)/(.+)$ /detail.php?id=$1 last;

rewrite ^/result/(.+)/(\d+)/(\d+)$ /result.php?keyword=$1&id=$2&nowPage=$3 last;

rewrite ^/result/(\d+)/(\d+)$ /result.php?id=$1&nowPage=$2 last;

}

location / 表示访问域名根目录下的地址

下面rewrite 后有两个正则表达式,前面一个是用户输入的地址;后面是要转义成的。

编辑完成后,需要重新加载 nginx:

进入usr/local/nginx/sbin

执行: ./nginx -s reload

下面贴一个 apache 下的设置方式:

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteRule ^/?category/(\d+)/(.+)/(\d+)$ category.php?cateId=$1&nowPage=$3 [L]

RewriteRule ^/?detail/(\d+)/(.+)$ detail.php?id=$1 [L]

RewriteRule ^/?result/(.+)/(\d+)/(\d+)$ result.php?keyword=$1&id=$2&nowPage=$3 [L]

RewriteRule ^/?result/(\d+)/(\d+)$ result.php?id=$1&nowPage=$2 [L]

</IfModule>

这一段我是放在 .htaccess 中的。

时间: 2024-08-08 13:54:16

Linux--nginx域名绑定-url rewrite的相关文章

nginx 域名绑定 域名, nginx 域名绑定 端口

一.nginx 域名绑定 域名 nginx绑定多个域名可又把多个域名规则写一个配置文件里,也可又分别建立多个域名配置文件,我一般为了管理方便,每个域名建一个文件,有些同类域名也可又写在一个总的配置文件里.一.每个域名一个文件的写法       首先打开nginx域名配置文件存放目录:/usr/local/nginx/conf/servers ,如要绑定域名www.itblood.com 则在此目录建一个文件:www.itblood.com.conf然后在此文件中写规则,如: server{ li

Apache和Nginx设置伪静态(URL Rewrite)的方法

原文地址:http://bbs.qcloud.com/forum.php?mod=viewthread&tid=3545 apache/nginx伪静态在线转换:http://www.anilcetin.com/convert-apache-htaccess-to-nginx/ Apache 2.x 1.首先我们要确认Apache已经正确加载了mod_rewrite模块      检查httpd.conf中是否有LoadModule Rewrite_module modules/mod_Rewr

linux nginx域名反向代理

准备反向代理的网站:www.a.com 目标网站:www.b.com 进入nginx的配置文件: 添加如下: 1 location / { 2 proxy_set_header X-Real-IP $remote_addr; 3 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 4 proxy_pass http://www.a.com; 5 } 访问www.a.com后会直接跳转到www.b.com 如果想访问www.a.

阿里云服务器Linux CentOS安装配置(八)nginx安装、配置、域名绑定

阿里云服务器Linux CentOS安装配置(八)nginx安装.配置.域名绑定 1.安装nginx yum -y install nginx 2.启动nginx service nginx start 3.访问(nginx默认是80端口) curl 127.0.0.1 4.域名子绑定 编辑文件/etc/nginx/conf.d/default.conf,在底部加入下面代码,完成前几章所述4个端口的子域名绑定 server{ listen 80; server_name tomcat.bingz

Linux+Nginx+Tomcat 多域名,多应用在同一服务器的配置

Linux+Nginx+Tomcat 多域名,多应用在同一服务器的整合配置 实现的效果和达到的目的为: 1.有两个域名www.aaa.com www.bbb.com 分别对应两个两个不同的网站,但是公用同一个Nginx和Tomcat服务器: 2.所有的JSP等动态内容转发到Tomcat处理,js.图片等直接由Nginx负责处理: 3.上传的图片不在应用的根目录下面,需要另外指定转发(Nginx Alias 虚拟目录) 以下为示例配置文件: Tomcat 配置:server.xml <Host n

Linux虚拟主机通过程序实现二级域名绑定到子目录

虚拟主机中CP控制台不支持将二级域名绑定到子目录的功能,用户可以通过程序实现将二级域名绑定到子目录. 有两种方法将二级域名绑定到子目录: 1. 配置.htaccess, 通过伪静态代码实现.具体实现方法参考:http://help.aliyun.com/knowledge_detail/6554929.html?spm=5176.7114037.1996646101.1.SkYPg8&pos=1 虚拟主机和轻云主机通过伪静态实现子目录绑定功能 万网虚拟主机.轻云主机均不支持通过控制台cp.hic

Nginx下支持ThinkPHP的Pathinfo和URl Rewrite模式

Nginx下支持ThinkPHP的Pathinfo和URl Rewrite模式 BY 孙 权 · 2014年8月6日 我的环境 系统 : Ubuntu12.04 x86_64 环境 : Nginx1.1.19+PHP5.3.10+Mongo2.6.3 由于公司要用Nginx+Mongo+PHP,所以我要把刚刚配置好的LAMP推翻,然后重新安装LNMP.软件安装就不在这里介绍了,如果有需要,可以看这里. 如何安装Nginx. 下面介绍如何使Nginx支持ThinkPHP的Pathinfo和URL

thinkphp nginx php-fpm url rewrite 导致 404 错误

thinkphp nginx php-fpm url rewrite 导致 404 错误 之前thinkphp的系统部署在apache上,考虑到在并发性能nginx比apache强悍得多,所以在centos上以 nginx+php-fpm模式重新部署了thinkphp系统,结果发现诸如 1 /index.php/home/user/verify 此类的url nginx会报404错误,但是改成 1 /index.php?s=/home/user/verify 之后却能够访问,这说明前一种url

linux下关于Apache设置二级域名绑定二级目录的方法

背景:对于一些论坛网站,某些目录需要制定二级域名去访问,这时候就要在apache中用二级域名绑定二级目录. 方法: 1.首先你要找到apache安装路径,在apahce安装路径下的conf文件夹中找到apache配置文件httpd.conf,打开配置文件,首先确定DocumentRoot路径注释掉(如果这个路径没有注释掉,那么不管用vhost还是用URL重写,都无法正常找到二级域名所绑定的二级目录) 2.开启mod_Rewrite这个模块,在httpd.conf配置文件中找到“#LoadModu