首页 > 系统相关 >将 Nginx 的非 www 转到 www,并将 www 转到非 www。

将 Nginx 的非 www 转到 www,并将 www 转到非 www。

时间:2023-11-20 19:00:51浏览次数:133  
标签:www http name server Nginx 转到 com example

内容来自 DOC https://q.houxu6.top/?s=将 Nginx 的非 www 转到 www,并将 www 转到非 www。

我正在按照教程在 Rackspace 云上使用 Nginx(参考链接:http://www.howtoforge.com/running-phpmyadmin-on-nginx-lemp-on-debian-squeeze-ubuntu-11.04),在网上搜索了一番,但迄今为止未能解决这个问题。

我希望 www.mysite.example 可以正常地重定向到 mysite.example,以满足 SEO 等需求。

我的 /etc/nginx/sites-available/www.example.com.vhost 配置文件如下:

server {
       listen 80;
       server_name www.example.com example.com;
       root /var/www/www.example.com/web;

       if ($http_host != "www.example.com") {
                 rewrite ^ http://example.com$request_uri permanent;
       }

我还尝试过以下配置:

server {
       listen 80;
       server_name example.com;
       root /var/www/www.example.com/web;

       if ($http_host != "www.example.com") {
                 rewrite ^ http://example.com$request_uri permanent;
       }

我还尝试过以下配置。然而,这两次尝试都导致了重定向循环错误:

if ($host = 'www.example.com' ) {
rewrite ^ http://example.com$uri permanent;
}

我的 DNS 设置是标准的:

site.example 192.192.6.8 A 类型每 300 秒刷新一次
www.site.example 192.192.6.8 A 类型每 300 秒刷新一次

(示例中的 IP 地址和文件夹仅供说明和帮助未来的用户参考)。我使用的是 Ubuntu 11。


HTTP 解决方案

根据文档的说明,"正确的方式是为 example.org 定义一个单独的服务器":

server {
    listen       80;
    server_name  example.com;
    return       301 http://www.example.com$request_uri;
}

server {
    listen       80;
    server_name  www.example.com;
    ...
}

HTTPS 解决方案

对于那些希望包含 https:// 的解决方案...

server {
        listen 80;
        server_name www.domain.example;
        # $scheme 表示获取 http 协议
        # 301 是平板电脑、手机、台式机和 SEO 的最佳实践
        return 301 $scheme://domain.example$request_uri;
}

server {
        listen 80;
        server_name domain.example;
        # 在此处放置其余配置文件
        # 示例
        location / {

            rewrite ^/cp/login?$ /cp/login.php last;
            # 等等...

        }
}

注意:我在解决方案中没有包含 https://,因为我们使用负载均衡器和高流量的 SSL 支付服务器:我们不混合使用 https://http://


要检查 Nginx 的版本,请使用 nginx -v 命令。

使用 Nginx 重定向删除 URL 中的 www

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

server {
    server_name  domain.example;
    # 这里放置其余的配置#
}

所以你需要有两个服务器代码。

使用 Nginx 重定向在 URL 中添加 www

如果你需要相反的效果,从 domain.example 重定向到 www.domain.example,可以使用以下代码:

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

server {
    server_name  www.domain.example;
    # 这里放置其余的配置#
}

可以想象,这只是相反的操作,与第一个示例的工作方式相同。这样,你不会降低 SEO 分数,因为它是完整的永久重定向和移动。没有 WWW 前缀被强制,目录会显示!

以下是一些我代码的示例:

server {
    server_name  www.google.com;
    rewrite ^(.*) http://google.com$1 permanent;
}
server {
       listen 80;
       server_name google.com;
       index index.php index.html;
       ####
       # 现在从一个目录中提取网站 #
       root /var/www/www.google.com/web;
       # 完成 #
       location = /favicon.ico {
                log_not_found off;
                access_log off;
       }
}

标签:www,http,name,server,Nginx,转到,com,example
From: https://www.cnblogs.com/xiaomandujia/p/17844612.html

相关文章

  • Centos 安装nginx
    一、添加Nginx到YUM源sudorpm-Uvhhttp://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm二、安装nginx#sudoyuminstall-ynginx三、启动nginx#sudosystemctlstartnginx.service四、开机启动#sudosystemctlenable......
  • nginx代理设置请求头
    server{listen80;server_nameprejoin.chexd.com;#监听的hostnameadd_header'Access-Control-Allow-Origin''*';root/usr/local/nginx/prejoinhtml;#第一个项目的根目录add_header'Access-Control-Allow-Credentials'......
  • Nginx 可视化配置!
    前言nginx-gui这个东西真的要吹一波,太好用了,而且源码公开。对于我这样一个作为Linux菜鸟的Java开发来说,这个可视化配置工具简直是福音!需求nginx可视化管理,例如配置管理性能监控日志监控其他配置方案目前已实现前两条:配置管理和性能监控日志分析监控这块还需要另找方案实现!github......
  • 219-nginx 配置https,证书配置
    server{#SSL默认访问端口号为443listen443ssl;#请填写绑定证书的域名server_nameqzkuma.cn;#请填写证书文件的相对路径或绝对路径ssl_certificate/home/ssl/qzkuma.cn_bundle.crt;#请填写私钥文件的相对路径或绝对路径s......
  • Nginx自定义日志中时间格式
    背景工作需要对接内部的日志中台,对日志打印有固定的格式要求,为了使Nginx的access日志也能被采集,需要对日志格式进行自定义,要求日志格式为:yyyy-MM-ddHH:mm:ss.SSSLOG_LEVELLOG_MSG--->时间格式+打印级别+业务日志如:23-11-1817:34:23.738DEBUGmonitor-7org.apach......
  • nginx常见问题
    1、400badrequest错误的原因和解决办法配置nginx.conf相关设置如下.client_header_buffer_size16k;large_client_header_buffers464k;根据具体情况调整,一般适当调整值就可以。2、Nginx502BadGateway错误......
  • Nginx+upstream针对后端服务器容错的配置说明
    Nginx+upstream针对后端服务器容错的配置说明  熟练掌握Nginx负载均衡的使用对运维人员来说是极其重要的!下面针对Nignx负载均衡upstream容错机制的使用做一梳理性说明:一、nginx的upstream容错1)nginx判断节点失效状态Nginx默认判断失败节点状态以connectrefuse和timeou......
  • nginx的443端口+虚拟主机
    https配置端口:443生成证书文件;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@虚拟主机的配置内容server块虚拟主机:(一)虚拟主机概念虚拟主机指的是一台运行在因特网上的服务器主机分成了多台虚拟的主机,每台虚拟主机是一个独立的站点,虚拟主机可以具有独立的IP,独立的域名,独立的服务端口,......
  • odoo nginx
    Nginx实例完整Nginx.conf示例参考官方文档即可#odooserverupstreamodoo{server127.0.0.1:8069;}upstreamodoochat{server127.0.0.1:8072;}map$http_upgrade$connection_upgrade{defaultupgrade;''close;}#http->httpsserver{......
  • 【小沐学Python】Web服务器搭建(Nginx、IIS)
    1、Web服务器web服务器一词可以代指硬件或软件,或者是它们协同工作的整体。6、NginxNginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器,同时也是一个IMAP、POP3、SMTP代理服务器,多用于高连接并发。6.1简介https://nginx.org/en/Nginx是lgorSysoev为俄罗斯......