Articles of 重写

如何在Nginx服务器块中创build多个停放的域

我已经为我的网站购买了多个域名。 现在,我redirect这些停放的域(指向我的nginx ipaddress的域)如下所示: server { server_name example.com www.example; rewrite ^(.*) http://example.co.uk$1 permanent; } 现在,我有超过5或6个停放的域名都指向这个ipaddress(1个站点)。 所以,如果我有多个停放的域名为同一个网站,我唯一的select是写一个真正冗长的server_name这样? server { server_name example.com www.example example.org www.example.org example.net www.example.net examples.com www.examples.com examples.org www.examples.org examples.net www.examples.net; rewrite ^(.*) http://example.co.uk$1 permanent; } 以上不适合我。 但是我的问题是,这是如何完成的? 我的意思是,如果我有很多停放的域,我只是一个添加不断添加到我的Nginxconfiguration的服务器块的冗长的行,这应该没有问题? 有人可以请澄清这一点,请…

Nginx:将目录redirect到虚拟服务器

我有两个Nginx虚拟服务器: server { listen 80 default_server; server_name antergos1; root /data/ } server { server_name nagios; root /usr/share/nagios/share; } 现在,当请求http://antergos1/nagios时,我需要访问http://nagios服务器。 我需要指定一个proxy_pass和/或重写吗?

Ngnix用catchall server_name重写

我试图做一个基于catchall服务器名称重写。 所以我想要任何命中该服务器的域名 demo.example.com 被重写 example.org?site=demo.example.com 目前我有catchall服务器设置为 server { listen 80 default_server; server_name ~^(.+)$; location / { rewrite ^ http://example.org?site=$host permanent; } } 不过,上面的configuration是带我去的 http://example.org/?site=~ ^(。+)$ 我已经尝试使用$ server_name在重写也没有运气。 有任何想法吗?

nginx:正则expression式不能在URL重写

我有http://sample.cervo02.com 。 我正在尝试获取https://cervo02.com/sample 。 我试过几个redirect他们都没有工作。 rewrite ^([^.]*)$ https://cervo02.com/$1 last; 返回https://cervo02.com// 另一个是rewrite ^([^.]*).cervo02.com$ https://cervo02.com/$1 last; 返回一个404和URL不会被重写。 完整的服务器主机定义 upstream backend { server 192.167.1.79:8080; } proxy_cache_path /tmp/cache levels=1:2 keys_zone=my-test-cache:8m max_size=5000m inactive=300m; server { listen 80; server_name sample.CERVO02.com; rewrite ^([^.]*)$ https://cervo02.com/$1 last; } server { listen 443 ssl spdy; server_name CERVO02.com; ssl on; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; location / […]

使用nginx或mongoose或mongrel或其他微型Web服务器,如何从一个根目录或顶级目录中为子目录提供某些文件

我有一个目录结构让我们来说 /user/me/project1 /usr/me/project1/private/stuff /usr/me/project1/whatever/bla/bla /usr/me/project1/pdf/bla.pdf /user/me/project2 /user/me/project2/priv1 /usr/me/project2/priv2 /usr/me/project2/pdf/sdfasfa.pdf 无论如何,我想要加载一个ROOT在/用户/我的networking服务器但是,当我加载页面在http:// localhost我只想看到所有.pdf文件的“清单”就在那里。 理想情况下,我甚至不想显示任何“子目录”,我希望他们“忽略”/隐藏。 基本上我想在一个列表中看到所有的PDF文件。 我可以重写任何方法等,我会使用nginx PREFER,但我确定除了Apache的其他build议,但任何可以轻松地运行.jar或编译容易与gcc像nginx是好的。 哦,我不想改变文件系统本身的任何东西,因为这些pdf文件得到更新,所以我想要一个简单的方法来将它们全部分享到一个列表中,而不必点击一堆子目录来find它们。 如果不能完成,最好的办法就是“隐藏”某些目录,或者隐藏所有的“except”,这样我就可以只显示“pdf”/ pdf / dirs。

为什么这个nginx重写规则添加了尾部的斜线?

我对位置/有以下重写规则,并强制执行尾部斜线! location / { rewrite ^(\/.*) https://example.com/ar$1 permanent; } 每次,我蜷缩mydomain.com,我得到了以下回应: HTTP/1.1 301 Moved Permanently Content-Type: text/html Connection: keep-alive Location: https://example.com/ar/ 我不想在redirect的URL末尾input斜线!

nginx重写在子文件夹中

我正在冒险进入nginx重写规则,所以这对我来说是一个相当新的话题。 我在根文件夹中有一系列使用重写规则的页面,如下所示: server { listen 80; ## listen [::]:80 default_server ipv6only=on; listen 443 ssl; root /nginx/gtt/; index index.html index.htm index.php gttindex.php; # Make site accessible from http://localhost/ server_name gtt.deb; ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; client_max_body_size 10M; # When access gps page just show gps if ( $request_uri = "/gps" ) { rewrite ^ /gps.lf.ws.vh.sprite.php break; } […]

Nginx重写,从文件名中删除图片尺寸

例如,如果对像这样的图像发出请求… /static/images/00f37ac6291bb6e8_150.jpeg 但150px的缩略图版本还没有生成,并返回一个404,我想让它尝试全尺寸的基本图像,将始终可用… … /static/images/00f37ac6291bb6e8.jpeg 我该如何让nginx做到这一点? 这是我已经开始,但我遇到问题搞清楚正则expression式。 我也不知道这是否是完成这个的最好方法。 location /static/ { resolver 8.8.8.8; try_files $uri @redirect; proxy_pass https://s3.amazonaws.com/<buckets>$request_uri; } location @redirect { rewrite ^(.*)(?=_)(\.*)$ https://s3.amazonaws.com/<buckets>$1; } 这也是我正则expression式与正则expression式…我无法弄清楚如何抓取文件扩展名。 更新: 这是我最终做的,它运作良好! location /static/images/ { resolver 8.8.8.8; proxy_intercept_errors on; proxy_pass https://s3.amazonaws.com/my-bucket$request_uri; error_page 400 401 402 403 404 @redirect; } location @redirect { rewrite ^(.*)\/(.*)(_)[0,1](.*)\.(.+)$ https://s3.amazonaws.com/my-bucket/images/$2.$5; }

Nginx将文件夹redirect到子域

我试图configurationNginx的redirect从一个文件夹到一个子域。 我已经尝试过Nginxredirect:文件夹到外部域和Nginx重写规则(子目录子域)和nginx:redirect子文件夹子域 。 没有任何工作 这个问题很简单。 我有一个configuration了这一行的Apache: RedirectPermanent / asd http://asd.domain.com/ 现在,我试图在Nginx上复制这个。 我试过的每一个configuration都有同样的问题: 如果我去http://www.domain.com/asd/ ,他们redirect到http://asd.domain.com/asd/ 。 如果我去http://www.domain.com/asd/index ,他们redirect到http://asd.domain.com/index 。 我需要在所有情况下删除子文件夹,对于我来说,第一个是不正确的。 如何在第一种情况下configurationnginx,请访问http://asd.domain.com/ ? 规则在根参数之后应用。 configuration是: server { listen — server_name — root — <> INSERT RULE HERE access_log — error_log — include – (A file with php configurations). } 尝试规则的一些例子: 重写^ / asd /(.*)http://asd.domain.com/ $ 1永久; 重写^ […]

允许父级.htaccessredirect所有资产

我们正在从一个子域迁移到另一个子域。 这个特定的域名有几个网站的子集。 我已经设置了以下重写来处理全局redirect: 在docroot/.htaccess (“规则#1”) RewriteEngine On RewriteCond %{HTTP_HOST} ^virtual\.example\.com$ RewriteRule ^(.*)$ http://events.example.com/$1 [L,R=301] 它通常工作,除了有几个网站有自己的重写规则。 例如, /roadshow/2015/具有以下全面规则: 在docroot/roadshow/2015/.htaccess (“规则#2”) RewriteCond %{REQUEST_URI} ^(.*)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !\.php$ RewriteRule .* framework/main.php?url=%1&%{QUERY_STRING} [L] 问题: /roadshow/2015/下的页面继续加载,就像规则1不存在一样。 我在这里错过了什么? 🙂