nginx中域名、目录的301重定向配置示例

301重定向不陌生, 有时候有需求把某目录整个重定向到一个二级域名,或者不带www的顶级域名请求全部重定向到带www的二级域名.如果是Apache,需要配置.htaccess,nginx不支持,需要在配置文件里面使用rewrite指令来实现。

顶级域名重定向到www


代码如下:

server {
 server_name jb51.net;
 rewrite ^/(.*)$ http://www.jb51.net/$1 permanent;
 }

如上配置,所以jb51.net的请求都会重定向到www.jb51.net,301重定向对SEO很有帮助.这个配置大家用的最多。

www二级域名重定向到顶级域名


代码如下:

server {
 server_name www.jb51.net;
 rewrite ^/(.*)$ http://domain.com/$1 permanent;
 }

江湖盛传顶级域名的权重会比www二级域名的权重高,有些seoer会要求运维一定要把www的请求转到顶级域名,和上面的做法相反。

目录重定向


代码如下:

if ( $request_filename ~ nginxjiaocheng/ ) {
 rewrite ^ http://www.jb51.net/nginx/? permanent;
 }

目录跳转新域名


代码如下:

if ( $request_filename ~ nginx/ ) {
 rewrite ^ http://nginx.jb51.net/? permanent;
}

nginx这个栏目太火了,打算专门弄一个域名。

附:域名之间的301跳转和测试方法

一、相同根域名与子域名之间的跳转

第一种情况:访问根域名重定向到www子域名 (Vhost 通常绑定了多个域名,这样做可以精确定位到某个域名,不会造成非本域名跳转到本域名的情况)

server {
    server_name www.jb51.net jb51.net;
    if ($host = 'jb51.net' ) {
        rewrite ^/(.*)$ http://www.jb51.net/$1 permanent;
    }

二、不同域名间的301跳转

第一种情况:访问A站定向到B站

代码如下:

server {
    server_name www.jb51.net;
    rewrite ^(.*) http://www.jb51.net$1 permanent;
}

第二种情况:不是访问A站的全部重定向到指定页面

代码如下:

server {
    server_name www.jb51.net;
    if ($host != 'jb51.net') {
        rewrite ^/(.*)$ http://www.jb51.net/$1 permanent;
    }
}

如果写在第一个server段
使用IP访问时也将被重定向

301重定向状态在线检测工具:http://web-sniffer.net/

返回了这句才算是301重定向成功:

代码如下:

Status: HTTP/1.1 301 Moved Permanently

(0)

相关推荐

  • Nginx服务器下配置个性二级域名及多个域名的实例讲解

    个性二级域名 配置下个性化二级域名. 效果: 访问的URL http://custom.jb51.net 实际的URL http://www.jb51.net/auth/custom 我们的做法就是通过服务器配置,将访问的url转换为实际的url 下面我们来用nginx配置.配置如下: server { listen 80; server_name *.jb51.net; if ( $host ~* (\b(?!www\b)\w+)\.\w+\.\w+ ) { set $subdomain $1

  • windows下Nginx多域名简单配置教程

    本文实例为大家分享了Nginx多域名的简单配置教程,供大家参考,具体内容如下 1. windows下安装nginx的目录结构如下: 2. 在nginx-1.12.1目录下conf/nginx.conf 内容 #user nobody; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile o

  • Nginx下301重定向域名的方法小结

    linux中nginx 301重定向跳转方法总结,有需要的朋友可参考一下. 第一种情况:访问aaaaaaa站定向到bbbbbbbbbbb站 复制代码 代码如下: server { server_naaaaaaame www.aaaaaaa.com ; rewrite ^(.*) http://www.bbbbbbbbbbb.com$1 permaaaaaaanent; } 第二种情况:不是访问aaaaaaa站的全部重定向到指定页面 复制代码 代码如下: server { server_naaaa

  • Nginx用户认证配置方法详解(域名/目录)

    Nginx可以为某一个域名单独加用户认证,具体做法如下: 1. 生成用户认证的用户名和密码: 复制代码 代码如下: #wget -c soft.vpser.net/lnmp/ext/htpasswd.sh;bash htpasswd.sh 根据提示输入: 用户名:密码:文件名: 脚本会自动生成认证文件,auth.conf内容如下: 复制代码 代码如下: /usr/local/nginx/conf/auth.conf 2. 为Nginx添加auth认证配置 下面以某域名下面的auth目录为例,在域

  • 详细nginx多域名配置的方法

    前言 Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,nginx多域名配置是在配置文件中建立多个server配置,在每个server配置中用server_name来对域名信息进行过滤. 实现方法如下: 举个例子,下面是一个conf文件: server { listen 80; server_name www.web1.com; #绑定域名 index index.htm index.html index.php; #默认文件 root /home/www.web1.

  • nginx将泛解析的匹配域名绑定到子目录配置方法

    网站的目录结构为: # tree /home/wwwroot/exehack.net /home/wwwroot/exehack.net ├── bbs │   └── index.html └── www     └── index.html 2 directories, 2 files /home/wwwroot/exehack.net为nginx的安装目录下默认的存放源代码的路径. bbs为论坛程序源代码路径:www为主页程序源代码路径:把相应程序放入上面的路径通过:http://www.

  • Nginx服务器中HTTP 301跳转到带www的域名的方法

    从nginx的官方文档 documentation, 正确的nginx https 301跳转到带www域名方法的方法如下: HTTP 301跳转到带www域名方法 复制代码 代码如下: server {         listen       80;         server_name  example.org;         return       301 http://www.example.org$request_uri;     } server {         list

  • Nginx 禁止IP访问 只允许域名访问

    我们在使用的时候会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了.下面我们就先看看Nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时 候生效最关键的一点是,在server的设置里面添加这一行: listen 80 default; 后面的default参数表示这个是默认虚拟主机. Nginx 禁止IP访问这个设置非常有用. 比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回50

  • Nginx实现根据域名http、https分发配置示例

    tomcat端口:8080 做好虚拟主机 nginx端口:80 根据域名分派 在conf/nginx.conf中的http中增加 复制代码 代码如下: include www.jb51.net.conf 新建conf/www.jb51.net.conf,内容如下: 复制代码 代码如下: server { listen 80; server_name www.jb51.net; location / {     proxy_pass http://127.0.0.1:8080;     proxy

  • Nginx批量添加二级子域名完美方案

    对于批量添加虚拟主机的需求,Apache 有 vhost_alias 模块帮忙.Nginx 呢?其实神马都不需要,同样可以实现 Nginx 二级域名匹配子文件夹,且不匹配 "www",但可以匹配包含 "www" 的子域名. 首先看看目前网上搜到的方法. 复制代码 代码如下: if ( $host ~* (.*)\.(.*)\.(.*)) {  set $subdomain $1; } location / {  root  html/$subdomain;  ind

随机推荐