- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我看到 Nginx HttpRewriteModule documentation有一个将 www 前缀域重写为非 www 前缀域的示例:
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ http://$host_without_www$1 permanent; # $1 contains '/foo', not 'www.mydomain.com/foo'
}
如何执行相反的操作 - 将非 www 前缀域重写为 www 前缀域?我想也许我可以做如下的事情,但 Nginx 不喜欢嵌套的 if 语句。
if ($host !~* ^www\.) { # check if host doesn't start with www.
if ($host ~* ([a-z0-9]+\.[a-z0-9]+)) { # check host is of the form xxx.xxx (i.e. no subdomain)
set $host_with_www www.$1;
rewrite ^(.*)$ http://$host_with_www$1 permanent;
}
}
此外,我希望它适用于任何域名,而无需明确告诉 Nginx 重写 domain1.com -> www.domain1.com、domain2.com -> www.domain2.com 等,因为我有大量要重写的域。
最佳答案
As noted in the Nginx documentation, you should avoid using the if
directive in Nginx where possible ,因为一旦您的配置中有 if
,您的服务器就需要评估每个请求,以决定是否匹配该 if
。
更好的解决方案是多个服务器指令。
server {
listen 80;
server_name website.com;
return 301 $scheme://www.website.com$request_uri;
}
server {
listen 80;
server_name www.website.com;
...
}
如果您尝试为启用 SSL (HTTPS) 的网站提供服务,则或多或少有三种不同的选择。
if
指令。There is also an option to use SNI, but I'm not sure this is fully supported as of now .
关于Nginx 将非 www 前缀域重写为 www 前缀域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1629231/
我正在使用 nginx on Rackspace cloud following a tutorial并且已经搜索了网络,但到目前为止无法对此进行排序。 出于 SEO 和其他原因,我希望 www.my
我到处搜索并尝试了各种 .htaccess 配置,但没有找到答案。 只访问 .htaccess 文件我想: 将 NON www 定向到 NON www SSL示例:http://example.com
下面的 htaccess 命令将所有非 www 转移到 http www RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^
我希望重定向所有内容: http:// http://www. https://www. to https:// 这可能已经在这里得到了回答,但是在浏览了看起来相关的问题后,它们都不完全是我想要的,并
我有一个全新的网站,最初是 http://然后我将网站重定向到 http://www它的工作就像一个魅力,但自从我安装了 SSL 我有两个版本的网站 http://www.example.com和 h
我必须将我的网站从 https://www.example.com/ 重定向到 https://website.com/。 SSL 已正确安装在我的服务器上。 我正在使用 Apache 并且必须使用
我有一个 SEO 人员让我很困惑。他提到在 Google 网站管理员工具中,我应该验证网站的 www 版本以及非 www(非 www 已经验证)。所以我告诉他没有必要,因为出于规范原因(如 Matt
-- 请参阅下面的 Tl;dr 以获得简短版本-- 在我的 ubuntu-16.04 droplet apache2 和 php7 上都使用用户 www-data。在某些时候,所有三个 wordpre
Tumblr 的文档 ' Using a custom domain name ' 非常有帮助,它清楚地说明我需要创建一个 A唱片为 example.com指向 66.6.44.4 ,以便我的网站可以
我有一个托管在谷歌云存储桶上的静态网站。 在我的存储桶前面,我有 cloudflare dns。 存储桶是 example.com Cloudflare 设置:CNAME > @ > c.storag
我正在使用以下代码编写 www 到非 www 重定向: RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
我的一个 friend 目前正在修补 JpCap在 Java 中,我们发现了一些关于 Java 正则表达式的有趣(也许?)问题。 只有 HTTP 流量被捕获并随后进行分析。为此,他使用了如下模式: P
我目前在 htaccess 文件中使用以下代码,将我的服务器中托管的网站的所有非 www 网址重定向到 www 网址。 RewriteCond %{HTTP_HOST} !^www\. Rewrite
我有一个 wordpress 网站 www.domain.com,我们刚刚购买了一个 SSL 证书,但它只适用于 domain.com(没有 www)。我配置了 .htaccess 和站点 url R
我的 Apache 服务器上的虚拟主机中有以下内容, Redirect permanent / https://domain.com Options
我正在尝试将所有流量从 HTTP 站点重定向到 HTTPS 站点,并将所有 www 流量重定向到非 www 站点。我的设置包括 HTTP 站点的 nginx.conf 文件,我已将 301 重定向规则
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 12 年前。 Improve thi
我有一个域说 http://www.testexample.com .当我登录 http://www.testexample.com然后回到http://testexample.com在浏览器中;登录
我正在为我的 Web 应用程序使用 EC2 实例。我买了一个新的 SSL 并将其安装在 AWS 经典负载均衡器上,我的 SSL 工作正常。但从 SEO 的角度来看,我想将所有请求从 www 和非 ww
这是否受跨源策略限制? 最佳答案 你不能。您只能向 www.foo.com 发送请求。 关于javascript - 在页面 'www.foo.com' 上,从 'www.example.com' 加
我是一名优秀的程序员,十分优秀!