Articles of redirect

nginx别名使用不同的主机名redirect到尾部的斜杠

我有以下nginxconfiguration服务器几个静态页面。 它位于负载均衡器后面,不在公共主机名上进行侦听。 下面的问题是nginx发送一个301回来添加一个尾部的斜线,但它将位置设置为internal.mysite.production / blog /而不是www.mysite.com/blog/ server { listen 80; server_name internal.mysite.production location /blog { root /var/www/somewhere/; } } 有没有更改这个选项?

nginx 301下载端口由stream浪者转发

我有一个vagrant虚拟机在端口80上运行nginx。我的主机将端口8080转发到vagrant vm的端口80。 我需要重写一个带有301redirect的url,这个工作正常,但是我通过隧道(8080)访问nginx的端口被丢弃,redirect失败。 http://server.com:8080/blog/two -becomes- http://server.com/blog.php?article=two – 它应该是 – http://server.com:8080/blog.php?article=two 例: rewrite ^/blog/(.*)$ /blog.php?article=$1 last; 谢谢!

将网站redirect到移动版本,Google移动设备友好testing出现错误

我有以下url: domain.fr (desktop site) domain.fr/m/ (mobile site) 两个网站使用“规范”或“替代”互相“指向”。 我们可以毫无问题地访问这些url。 我想redirect手机上的人:domain.fr/m/ 在PHP中,我试过: $useragent=$_SERVER['HTTP_USER_AGENT']; if(preg_match('/(android|bb\d+).+mobile|….',substr($useragent,0,4))){header('Location: http://domain.fr/m/');} 问题:当我使用Google Mobile-Friendly Test检查domain.fr时,出现以下错误消息: (这就像谷歌无法检查这是否是移动友好的) 如果我删除上面的PHP,谷歌可以做的testing,但说domain.fr不是用户友好的。 如何redirect到移动网站,我认为这是PHP代码的问题,任何想法?

如何使用nginxredirect到使用rand key的URL

如何从主页面的URLredirect。 例如 site.ru 至 site.ru/?rnd=[random key] 使用nginx 。 我的configuration: server { listen 1.1.1.1:80; server_name dev.site.ru; root /home/deploy/htdocs/dev.site.ru/current/dist; location / { try_files $uri /index.html; } }

Nginx遵循redirect和反向代理最后的位置

我试图反向代理一个有Nredirect301的URL。 我想跟随所有页面,然后反向代理最后一页(第四url.php)。 Nginx是否可以加倍打折? 这是情况 第一个url: http://first-domain.com/first-url.php redirect到 http://first-domain.com/second-url.php redirect到 http://first-domain.com/third-url.php redirect到(上一个) http://first-domain.com/fourth-url.php 这是我到目前为止所做的文件configuration: server { set $base_url 'http://first-domain.com'; set $page 'first-url.php' location /myserver { resolver 8.8.8.8; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass $base_url/$page; proxy_intercept_errors on; error_page 301 302 307 = @handle_redirect; } location @handle_redirect { resolver 8.8.8.8; set $saved_redirect_location $upstream_http_location; proxy_set_header […]

有多lessNGinxredirect?

我正在研究一个以新闻为中心的网站,这个网站已经有很多年了,并且正在稳步地增加页面redirect。 目前我们有大约375个redirect,每月增加5-10个。 我知道NGinx在处理redirect方面速度非常快,但是大概必须有一些redirect会以一种有意义的方式影响性能,如果我知道有多less个redirect,我会感觉更好。 数百? 成千上万的? 百万? 我们能够通过在Memcachedcaching热门页面一两分钟来处理大量的stream量(减less数据库负载,这是一个明显的瓶颈),但是NGinx仍然需要路由该stream量。 这是我应该关心的吗? 高stream量网站有多lessredirect? [编辑:build议,我也发布了这个在ServerFault ] [编辑:这里是我在ServerFault上接受的答案] redirect并不是真正的问题,因为没有后端联系。 只是Nginx。 只是Nginx真的很快。 如每秒超过10000个连接速度 在担心Nginx是否可以处理它之前,您应该更担心一个混乱的configuration文件。

用nginx服务通过子域的路由

所以我有两个域 – www.mysite.com和sub.mysite.com sub.mysite.com被许多旧版应用程序所使用,这些应用程序由于各种原因无法更新,并且他们对该url上的URL的请求需要继续工作。 但是,代码正在从sub.mysite.com的Rails应用程序中移除,并将被整合到www.mysite.com 目前的计划是在www.mysite.com/sub上提供sub.mysite.com内容,但是如何让nginx从www.mysite.com/sub上呈现内容就好像它来自su​​b.mysite.com 我已经在nginxconfiguration中尝试了一些重写规则,但是他们一直将我redirect到www.mysite.com/sub URLs,而不是坚持使用sub.mysite.com地址。 在我的nginxconfiguration的底部,我目前有: server{ listen 80; server_name sub.mysite.com; location / { proxy_redirect off; proxy_pass http://www_server/sub; } } 我甚至要求甚么?

如何将nginxredirect到没有html头的非http

我试图将nginx中的urlredirect到非http协议,如test:// 123456,当我去test.com/123456 我已经尝试了以下重写:重写^ /(。*)$ test:// $ 1 permanent; 它的工作原理是奇怪的部分,它增加了HTML /正文头弄乱我的代码,是否有任何方式没有HTML头或任何其他推荐的方式来重写? HTTP/1.1 301 Moved Permanently Server: nginx/1.1.19 Date: Tue, 30 Apr 2013 14:14:47 GMT Content-Type: text/html Content-Length: 185 Connection: keep-alive Location: test://123456 <html> <head><title>301 Moved Permanently</title></head> <body bgcolor="white"> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx/1.1.19</center> </body> </html>

perl催化剂www到非wwwredirect

我有一个托pipe多个客户的网站托pipe平台。 这是一个催化剂应用程序负载均衡后面的nginx 。 我希望每个客户都能够select是否让他们的域名前面有www ,或者前面没有www ,然后我希望能够适当地redirect。 我的问题是,最好是在nginx级别还是在Catalyst级别处理这样的事情? 通常情况下,一个简单的www到non-wwwredirect将在负载平衡器级别处理,但我认为,由于我redirect的方式将因域而异,因此在Catalyst级别处理redirect可能更有意义? 如果是这样,在Catalyst处理从www到non-www (或viceversa)的redirect的最佳方式是什么? 或者如果你认为nginx会更好,那么使用它最好的办法是什么? 谢谢!

在将HTTPredirect到HTTPS时,如何处理Nginx中的400错误

我拥有一个网站,如通过HTTP的example.com。 考虑到安全的东西,现在我想将HTTP更改为HTTPS。 我希望所有的老客户都可以访问我的网站,即使他们使用example.com,通过Nginxredirect到https。 当然,我search了很多,然后我的解决scheme是: upstream www { server 127.0.0.1:4000; } server { listen 80; listen 443 ssl; server_name localhost www example.com; ssl on; ssl_certificate /usr/local/etc/docs/example.crt; ssl_certificate_key /usr/local/etc/docs/example.key; if ($ssl_protocol = "") { rewrite ^ https://$host$request_uri? permanent; } # below are some other stuff # … } 但是当我访问example.com时,我得到了: 400错误的请求普通的HTTP请求已发送到HTTPS端口 然后我改变了nginx.conf,在读取nginx中的Redirect之后,并将错误页面configuration为497: upstream www { server 127.0.0.1:4000; } […]