301在Nginx中重写永久重定向
大家好,仍然在学习linux(运行Ubuntu10.04 lts)和nginx(运行1.4.1)谢谢大家的帮助,我已经找到了一些我想做的事情的例子,但是他们没有足够的解释我的舒适度 我将site1.com及其所有内容移动到了site2.com,需要一个永久的301重定向,因为我在其他网站上有很多链接,无法更改 我找到的最好的教程告诉我这样做:301在Nginx中重写永久重定向,nginx,ubuntu-10.04,Nginx,Ubuntu 10.04,大家好,仍然在学习linux(运行Ubuntu10.04 lts)和nginx(运行1.4.1)谢谢大家的帮助,我已经找到了一些我想做的事情的例子,但是他们没有足够的解释我的舒适度 我将site1.com及其所有内容移动到了site2.com,需要一个永久的301重定向,因为我在其他网站上有很多链接,无法更改 我找到的最好的教程告诉我这样做: ### redirect beta.cyberciti.biz$URI to www.cyberciti.biz$URI with 301 ### ser
### 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{}块下方和所有注释块上方。在nginx中,将服务器名称从site1更改为site2,然后创建一个新的site1块
server {
listen 80;
server_name site1.com;
location / {
return 301 $scheme://site2.com$request_uri;
}
}
当我添加以下内容时得到:root@mail~:service nginx restart Restarting nginx:[emerg]:未知指令“server”位于/etc/nginx/nginx.conf:31配置文件/etc/nginx/nginx.conf测试失败我已经移动了所有文件,因此我没有从服务器上删除域区域,但文件和文件夹都不见了。。这可能是问题所在吗?您是否将
服务器
放在另一个服务器
中?因为这不起作用,你需要在另一个服务器
块之外创建它,你能粘贴整个nginx.conf
或者至少是关于这个站点的部分吗?不,我在最后一个http{}块下面插入了它,在所有注释块上面,将我的nginx.conf添加到原始帖子中,谢谢你的帮助!那么server
块需要在http
块中,如果您在http
块的最后一行看到,它会说include/etc/nginx/sites enabled/*
这意味着您可以在启用的站点中创建文件
并且它将自动包含在内,您不需要使用nginx.conf
文件,无论如何,如果您想要快速修复,请移动您在http
块中添加的服务器
块