301在Nginx中重写永久重定向

时间:2013-07-13 20:05:12

标签: nginx ubuntu-10.04

你还在学习linux(运行ubuntu 10.04 lts)& nginx(运行1.4.1)感谢任何帮助,我已经找到了我想要做的例子,但是他们并没有为我的舒适水平拼出足够的东西..

我将site1.com及其所有内容移至site2.com并需要永久301重定向,因为我在其他网站上有许多我无法更改的链接。

我找到的最好的教程告诉我要做这样的事情:

### redirect beta.cyberciti.biz$URI to www.cyberciti.biz$URI with 301 ###
server {
    listen      75.126.153.206:80;
    server_name beta.cyberciti.biz;
    root        /usr/local/nginx/html;
    index       index.html;
    rewrite     ^ $scheme://www.cyberciti.biz$request_uri permanent;
    # ....
}

但是我很困惑我是否添加了整个块来更改变量,或者我是否应该更改已在我的conf文件中的服务器{....}块。我的conf文件中有两个服务器{...},但它们都被注释掉了(见下文)..如果它们被注释掉,不知道为什么它们在那里..

#     server {
#         listen     localhost:110;
#         protocol   pop3;
#         proxy      on;
#     }
#
#     server {
#         listen     localhost:143;
#         protocol   imap;
#         proxy      on;
#     }

目前的nginx.conf是:

user www-data;
worker_processes  3;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
worker_connections  1024;
# multi_accept on;
}

http {
include       /etc/nginx/mime.types;

access_log  /var/log/nginx/access.log;

sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;
tcp_nodelay        on;

gzip  on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}



# mail {
#     # See sample authentication script at:
#     # http://wiki.nginx.org/NginxImapAuthenticateWithApachePhpScript
# 
#     # auth_http localhost/auth.php;
#     # pop3_capabilities "TOP" "USER";
#     # imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#     server {
#         listen     localhost:110;
#         protocol   pop3;
#         proxy      on;
#     }
# 
#     server {
#         listen     localhost:143;
#         protocol   imap;
#         proxy      on;
#     }
# }

我在http {}块下方和所有注释块上面插入了你告诉我的内容。

1 个答案:

答案 0 :(得分:4)

在nginx中将server_name从site1更改为site2,然后创建一个新的site1块

server {
    listen 80;
    server_name site1.com;
    location / {
        return 301 $scheme://site2.com$request_uri;
    }
}