另一个 nginx 重写规则问题
我怎样才能从http://www.*.domain.com到重写http://*.domain.com?
提前致谢
——黛布
编辑:
很抱歉,我没有看到纺织格式从我的问题中删除了 *。我现在修好了。我需要做的是从 www.joe.domain.com 转到 joe.domain.com,其中 joe 可以是任何单词。
Mar*_*ald 12
这是一个相当大的黑客。
性能明智的最快方式是
server {
server_name www.domain.com;
rewrite ^ http://domain.com$request_uri permanent;
}
Run Code Online (Sandbox Code Playgroud)
您保存了一个正则表达式匹配以及两个捕获,此外您还可以利用 nginx 使用哈希表查找匹配的服务器块。
此外,您不需要重新启动 nginx - 只需要重新加载即可,谁想要比所需的停机时间更长?
domain.com 之前的额外句点有什么意义?目标是从 URL 中删除 www 吗?如果是这样,这应该可以解决问题:
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ http://$host_without_www$1 permanent; # $1 contains '/foo', not 'www.mydomain.com/foo'
}
Run Code Online (Sandbox Code Playgroud)
不要忘记:sudo /etc/init.d/nginx restart加载它
资料来源:NGINX 维基
您可以使用正则表达式服务器名称(请参阅http://nginx.org/en/docs/http/server_names.html#regex_names):
server {
listen 80;
listen 443;
server_name ~^www\.(\w+)\.domain\.com$
location / {
rewrite ^ $scheme://$1.domain.com$request_uri permanent;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16352 次 |
| 最近记录: |