我们在美国有两个VPC,另一个在欧洲。 每个VPC在公有子网中都有一个负载均衡器,我们在私有子网中运行我们的Web应用程序。 我们想要的是,如果用户访问我们的网站(向我们的主机/域请求),如果用户来自欧洲地区,则请求被redirect到欧洲VPC,如果用户请求来自美国,则请求被redirect到美国VPC。
我正在将网站从www.myolddomain.com移到www.mynewdomain.com,但是我正在尝试执行以下操作: 如果有人去www.myolddomain.com,他们将被redirect到www.mynewdomain.com/pageA 如果有人去www.myolddomain.com/pageB,他们将被redirect到www.mynewdomain.com/pageB 我现在已经在我的sites-available文件中实现了redirect: RewriteCond %{HTTP_HOST} ^myolddomain.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.myolddomain.com [NC] RewriteRule ^(.*)$ http://www.mynewdomain.com/$1 [L,R=301,NC] 它工作的很好,因为它指向旧的域到新的域,并保留path,但我想如果有人击中旧域的根他们被redirect到一个特定的页面。 我希望有人能就此提出build议,希望我的问题已经够清楚了。 我正在做服务器configuration文件中的redirect,因为我不想使用.htaccess文件出于安全原因。 谢谢!
当我通过这个代码,它redirect我的整个网站。 但是当我想去ticket.mysite.com它给了我404,因为它将我redirect到www.ticket.mysite.com,但我不希望这与子域。 RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L] 我已经试图从子域中的地图上通过一个没有上述代码,但这是行不通的。
我已经安装了一个网站的tomcat和另一个(WordPress的)的apache2。 这个问题发生在WordPress的网站。 有反向代理的nginx,这里是: server { listen 80; root /var/www/html/; index index.php index.html index.htm; server_name test.example.com; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8081; } location ~ /\.ht { deny all; } } server { listen 80; server_name conf.example.com; location / […]
我正在尝试redirect到一个完整的URL,包括URL上的每个string。 我要这个 http://www.SITE-A.com/everything?complete=url&fully=redirected redirect到 http://www.SITE-B.com/everything?complete=url&fully=redirected 这工作正常与Apache使用 RewriteRule ^/?$ "http\:\/\/www\.site-b\.com\/" [R=301,L] 我做了一切,我发现在serverfault,但没有运气呢。 我所能得到的总是这个redirect http://www.SITE-A.com/everything?complete=url&fully=redirected redirect到 http://www.SITE-B.com/?complete=url&fully=redirected redirect后,“ 一切 ”都消失了 我试过这些 location /quick-search { try_files $uri http://www.site-b.com/quick-search.php?$arg_q; } 和 location / { rewrite ^/(.*) http://www.site-b.com/$1 permanent; }
我使用nginx根据他们的位置redirect用户。 我只想添加一个参数到查询string,只要该参数尚未定义 – 如果它被定义,我不想改变它。 这个参数被称为tag 。 这是我第一次尝试。 我希望它会落在第二个位置,如果它在任何地方的URL中都有tag= string,如果它有一个查询string,但是丢失了tag ,则会落到第三个位置,如果没有查询string,则会落到第一个位置。 location / { return 302 https://$local_site$request_uri?tag=mytag; } location /tag=/g { return 302 https://$local_site$request_uri; } location /\?/ { return 302 http://$local_site$request_uri&tag=mytag; } 然后我知道,当按位置钻取时你看不到查询string。 而且我也知道如果是邪恶的话 有没有办法做到这一点,而不使用?
我突然有一个奇怪的问题,我敢肯定,我已经取消了应用程序的罪魁祸首,但我本质上不是服务器pipe理员,所以我可能是错的。 https://launchwestco.com 的Linode Ubuntu 14.04.4 LTS Nginx 1.10.1 Laravel 5.2 从我的家,办公室和其他networking加载罚款。 在Verizon,它不是加载,给错误太多的redirect。 当我的手机或我的笔记本电脑上加载我的手机时,这是真实的。 问题似乎在昨天晚上出现,至less在我们注意到的时候。 我怀疑这是在服务器configuration的东西,但我的Nginxconfiguration似乎是正确的: server { listen 80; listen [::]:80 ipv6only=off; server_name launchwestco.com *.launchwestco.com; rewrite ^ https://$host$request_uri? permanent; } server { listen 443 ssl; listen [::]:443 ssl ipv6only=off; server_name launchwestco.com *.launchwestco.com; root /home/forge/envoyer/com.launchwestco/current/public; client_max_body_size 55M; underscores_in_headers on; # FORGE SSL (DO NOT REMOVE!) ssl_certificate […]
我有一个在Debian上有多个域的nginx服务器。 他们都住在html文件夹中。 然后Alogging指向我的服务器,您可以通过访问https://mywebsite.biz访问/var/www/html/mywebsite.biz的文件。 我也使用Let's Encrypt分配他们的TLS证书。 它看起来像这样: └── html ├── mywebsite.biz ├── anotherwebsite.net ├── example-three.com └── somewebsite.ca 但是,您可以通过我的IP地址访问该html文件夹而无需TLS,如下所示: http://216.58.216.78/mywebsite.biz 但是我也有这样的情况,我希望这样的事情发生。 例如,如果我想设置一个testing站点,然后才能将该域指向我的服务器。 为此,我使用noip.com为其分配一个友好名称,如下所示: http://myservername.ddns.net/somewebsite.ca (只是一个testing网站) 只有一些网站通过IP地址/友好名称拒绝访问的最佳方式是什么? 拒绝/redirect这些: http://myservername.ddns.net/mywebsite.biz http://216.58.216.78/mywebsite.biz 允许这个: http://myservername.ddns.net/somewebsite.ca 我的猜测是在那里redirect它们,但是我对nginx有点新,并且想确保这是最好的方法。
我有一个域名(我们称之为one.com ),其中包含: 一个网站 一个MySQL DB +一个用PHP编写的REST API服务来访问数据 API服务由移动平台使用,通过url one.com/api调用它。 进出API的内容仅仅是JSON数据。 一切都由一个着名的服务,保证一个非常慷慨的带宽托pipe。 无论如何,我们从来没有达到极限的问题,因为传输的数据量和应用程序的使用相对较低。 出于几个原因,我们决定将整个数据库和API基础结构移到另一个域,将其two.com ,其API端点为two.com/api ,只留下该网站。 为此,移动应用程序发送到one.com/api的请求必须redirect到新的two.com/api 。 我们成功地使用Apache的htaccess“mod_rewrite”的方式做到了这一点。 现在, one.com的慷慨托pipe平台对于网站来说变得太多了,我们将把它降级到一个更便宜的共享主机,但是这次我们读到“每月10,000个访问量的近似负载适合这个共享计划”。 这显然是一个参考,对我们的网站应该是好的,但是REST API服务呢? 我的意思是, one.com -> two.com带宽是否仍然会受到one.com -> two.com请求的调用的影响,如果将来使用我们的应用程序会增加瓶颈。
现在的情况: 我成功地设法在我的Serverpilot(nginx / apache)服务器上手动设置SSL证书。 因为我的网站在Serverpilot服务器上运行,所以部分是nginx,部分是Apache。 我可以在我的服务器上执行Apache中的所有redirect,但我更喜欢在我的nginxconfiguration文件中以正确的方式执行,因为我已经读过这种方法。 由于nginx由serverpilotpipe理,所以我必须在位于我的服务器上的这个文件夹中的一个单独的nginxconfiguration文件中进行更改:/etc/nginx-sp/vhosts.d。 如您所见,Serverpilot不使用标准nginxconfiguration,Serverpilot安装来自Serverpilotconfiguration文件。 这个/etc/nginx-sp/vhosts.d文件夹中有两个文件: example.conf(这是Serverpilot的标准configuration文件,我没有改变它) example.ssl.conf(这是我用ssl规则创build的文件) 据我所知,Nginx首先读取第一个.conf文件,然后读取第二个.conf文件。 那是对的吗? 什么 example.conf(Serverpilot标准configuration文件)包含以下内容: server { listen 80; listen [::]:80; server_name server-example example.net www.example.net ; root /srv/users/serverpilot/apps/example/public; access_log /srv/users/serverpilot/log/example/example_nginx.access.log main; error_log /srv/users/serverpilot/log/example/example_nginx.error.log; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; include /etc/nginx-sp/vhosts.d/example.d/*.nonssl_conf; include /etc/nginx-sp/vhosts.d/example.d/*.conf; } 我创build了一个包含以下内容的example.ssl.conf: server { listen 443 ssl http2; listen […]