Articles of 重写

在使用url重写创build反向代理时获取错误500.52

我已经使用以下技术来实现Url重写。 http://weblogs.asp.net/owscott/archive/2013/10/24/creating-a-reverse-proxy-with-url-rewrite-for-iis.aspx 但是我得到的错误 HTTP Error 500.52 – URL Rewrite Module Error. Outbound rewrite rules cannot be applied when the content of the HTTP response is encoded ("gzip"). 我已禁用静态压缩。 也已经添加到我的web.config在我想要redirect的内部服务器上: <system.webServer> <urlCompression doStaticCompression="false" doDynamicCompression="true" dynamicCompressionBeforeCache="false" /> </system.webServer> 我想从外部IP做url重写说:41.76.89.165 / mywebsite到192.168.154.21 / mywebsite 请有人帮忙

重写代理上游

我有一台服务器,在localhost:8080上为我提供LuCI服务。 我想通过nginx代理它,但我想重写的URL,而不是https://myserver/cgi-bin/luci ,我有https://myserver/ 。 这是我到目前为止,这似乎并没有工作: upstream luci { server localhost:8080; } server { # … location / { proxy_pass http://luci; proxy_redirect / /cgi-bin/luci; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; } } 但是,在这个configuration下,我仍然看到我的url前缀为/cgi-bin/luci ,而且他们仍然以某种方式工作。 我如何重写我的传入请求从https://myserver/^(.*)$到http://luci/cgi-bin/luci$1 ?

如何转换RewriteCond规则,使他们在Lighttpd中工作?

我怎样才能转换这个Apache重写规则,使他们在Lighttpd上工作? 这实际上是一个.htaccess文件,我需要把它们放在一个lighttpd.conf文件中。 Options +FollowSymLinks RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule www.(.*) web.php?url=$1 RewriteRule sitemap/(.*) mapdi.php?page=$1 RewriteRule tags_(.*)\.html$ tags.php?keywords=$1 RewriteRule ^([^-]*)-page-([^-]*)\.html$ tags.php?keywords=$1&page=$2 [L] RewriteRule ^sitemap_([^-]*)\.html$ sitemap_web.php?page=$1 [L] RewriteRule ^sitemap\.html$ sitemap.php$1 [L] RewriteRule ^privacy\.html$ privacy.php$1 [L] 我转换了一部分代码,但不知道如何转换: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ …. …. 这是我可以转换: url.rewrite-once = ( RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} […]

设置nginx,重写和fastcgi

在过去的几天里,这个问题一直困扰着我……在一个需要身份validation并且存在不同部分(CMS,API,前端)的应用程序中,我们遇到了一些共享会话/ cookies /交叉源的问题要求。 最后,我认为在一个领域实施一切都是最简单的。 scheme:// app /为前端 scheme:// app / api的API scheme:// app / cms为CMS 这导致了在PHP中的API构build一些麻烦。 API期望request_uri是/ users / images而不是/ api / users和/ api / users。 我们认为一个简单的重写将是解决scheme,但不知何故request_uri不会被重写。 这是服务器设置: server { listen 9090; server_name coda.dev; access_log /usr/local/var/log/nginx/coda.access.log; error_log /usr/local/var/log/nginx/coda.debug.log notice; charset utf-8; rewrite ^/(.*)/$ /$1 permanent; location / { proxy_pass http://localhost:9000; } location /api { root […]

nginx重写单个php页面

我真的很难理解和实现一个非常简单的操作在Nginx中。 我正在尝试重写以下页面: http://test.domain.com/prova_pagina.php 至 http://test.domain.com/p/ 我在nginx.conf中有以下内容: server { listen 82; root /dir; include /nginx/conf/mod_pagespeed.conf; include /nginx/conf/expiry_directives.conf; server_name test.domain.com; index theindex.php; location / { rewrite ^/d/ /prova_pagina.php last; } location ~ \.php$ { include /nginx/conf/fastcgi_params; fastcgi_index theindex.php; if (-f $request_filename) { fastcgi_pass 127.0.0.1:9000; } } } 它实际上工作,但问题是所有的外部链接,如CSS和JS后得到/ D /附加在域。 任何帮助? 任何简单的教程,可以让我明白如何正确实现这一目标? 谢谢你的帮助。

重写规则跨环境保存path

我试图想出一些redirect规则,将在我的本地工作目录和生产工作。 问题是我的本地开发环境工程通过“本地主机/ exp”作为生产从域名“www.lorem.com”的根源。 这样做: RewriteEngine On RewriteCond ^rec.php /core/rec [R=301,L] 在生产工作不用担心,但在我本地redirect到:“本地主机/核心/ rec”,在那里我想要它是“本地主机/ exp / core / rec” 我宁愿不必在那里硬编码“exp”,到目前为止,我发现唯一的办法是每个环境都有独立的规则,我可以在我的本地使用: RewriteEngine On RewriteCond %{REQUEST_URI} (.*)/exp/(.*) RewriteRule ^rec.php /exp/core/rec [R=301,L] 感谢这一个帮助。 谢谢!

Nginx反向代理为404提供静态内容请求

我们的设置是两台服务器: 一个服务WP安装 另一个用于额外的自定义function。 托pipeWP的服务器1使用Nginx作为Web服务器,反向代理服务器2。 在服务器1中,我们有一个简单的反向代理位置块: location /foo/ { proxy_pass http://1.1.1.2/foo/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_redirect off; proxy_intercept_errors on; } 在服务器2中,我们也有一个位置块,因为平台需要重写一次URL。 这是一个混杂的包,因为平台通过index.php?args加载一些内容,但也有静态内容: location /foo/ { index index.php; try_files $uri $uri/ /foo/index.php?$args; } 我们面临的问题是,尽pipedomain.com/foo/?bar,domain.com/foo/bar效果很好,domain.com/foo/img/photo.png给404。 我认为这是由于try_files但我似乎无法得到它的工作。

设置基于HOST头的保释代理

我们在迁移阶段build立了一个代理,看到人们试图滥用它。 它被正确configuration并只转发到我们的应用程序服务器,但是这些testing向我们的主服务器收费 想法是使用代理来释放主机头中包含“http://”的请求以减less我们的应用程序服务器负载。 我加了两条第一线来实施保释。 RewriteCond %{HTTP_HOST} http://.* [NC] RewriteRule .* / [F,L] ProxyPass / http://xx.xxx.xxx.xx/ ProxyPreserveHost on 但是我没有想到的那样。 代理仍然工作,而不是返回401。 另一种方法是做一个 RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [P] 但是我不知道它是否会做到这一点。

Apache更改代理请求的URL重写

我有代理请求的问题。 我需要启用Apache的mod_proxy为我的子域名,但我忘了从mydomain.com设置允许,这是从所有的允许…是的,我创build了所有世界的开放代理…所以,现在当我从所有设置拒绝,从mydomain.com允许我得到的错误,一些客户端已被拒绝,因为服务器configuration这是好的,并在access.log我已经得到一些与返回代码403这也是很好的请求。 这是要求之一。 例如 GET http://www.google.com HTTP/1.1 403 462 "-"Mozilla/4.0 (compatible; MSIE 6.0;) 我的问题是我可以修改正在对我来一些另一个url的url? 我可以更改此url“google.com”为“mydomain.com”?

是否有可能redirect到另一个url的url,以便用户总是看到原来的url?

我有一个网站的url是subdomain.example.com,但我希望用户使用不同的url来访问它example.com/subdomain。 只是为了添加一些上下文,这两个域位于两个不同的服务器上,使用不同的技术,所以我不能把它们放在同一台服务器上。 我知道我可以从一个redirect到另一个,但出于市场营销的原因,最终用户无法在地址栏中看到redirect的url,但始终是他们input的url。 这可能吗? 如何实现它? 谢谢