Articles of 重写

如何将HTML代码注入到每个交付的HTML页面?

我有一个提供静态HTML页面的Apache web server 。 出于某种原因,我不能自己改变这些文件,但是我仍然希望在每一个被提供的页面中注入一些HTML。 这是可能的mod_proxy ? 如果没有,任何人都可以推荐一个提供这样的function的软件? 编辑:我必须插入某种横幅广告(例如一个javascript )和一个跟踪像素。

如何重写Nginx反向代理中的Set-Cookie的域部分?

我有一个简单的nginx反向代理: server { server_name external.domain.com; location / { proxy_pass http://backend.int/; } } 问题是Set-Cookie响应头包含;Domain=backend.int ,因为后端不知道它被反向代理。 我怎样才能让nginx重写Set-Cookie响应头的内容,用;Domain=external.domain.comreplace;Domain=backend.int ? 在这种情况下,不改变Host头不是一个选项。 Apache的httpd已经有了这个function一段时间,请参阅ProxyPassReverseCookieDomain ,但我似乎无法find一种方法来做同样的nginx。

Nginx – nginx.conf位置块中〜(代字号)的含义?

在nginx conf中的locaton块之后的代字号是什么意思? 例如 location ~ ^/download/(.*)$ { alias /home/website/files/$1; } 有和没有“〜”之间的区别是什么?

nginx url重写:break和last的区别

我不明白中断和最后(重写标志)之间的区别。 文档相当深奥。 我试图在我的一些configuration之间切换两个,但我不能发现任何行为上的差异。 有人可以更详细地解释这些标志吗? 优选地,在将一个标志翻转到另一个时示出不同的行为的示例。

删除“www”并用nginxredirect到“https”

我想在nginx中创build一个规则来做两件事情: 删除“www”。 来自请求URI 如果请求URI是“http”,则redirect到“https” 有很多如何做每个单独的事情的例子,但我不能找出一个正确的解决scheme(即不创build一个redirect循环,并正确处理所有情况)。 它需要处理所有这些情况: 1. http://www.example.com/path 2. https://www.example.com/path 3. http://example.com/path 4. https://example.com/path 这些应该都在https://example.com/path(#4 )没有循环。 有任何想法吗?

Nginx将一个pathredirect到另一个path

我确定之前已经问过这个问题,但是我找不到一个可行的解决scheme。 一个网站已经切换CMS服务,但有相同的域,我如何设置一个页面的nginx重写? 例如 旧页面 http://sitedomain.co.uk/content/unique-page-name 新页面 http://sitedomain.co.uk/new-name/unique-page-name 请注意 ,我不希望内容页面中的所有内容都被redirect,但实际上只是上面提到的url。 我有大约9个redirect设置,其中不符合一个模式。 谢谢! 编辑:我发现这个解决scheme,似乎工作,除了它没有斜线redirect的事实: if ( $request_filename ~ content/unique-page-name/ ) { rewrite ^ http://sitedomain.co.uk/new-name/unique-page-name/? permanent; } 但是这redirect到: http://sitedomain.co.uknew-name/unique-page-name/

如何限制对目录和子目录的访问

我需要限制访问direstory“testdir”中的任何文件或子目录。 我的conf: … location ~* ^.+\.(jpg|txt)$ { root /var/www/site; } location /testdir { deny all; return 404; } … 在我的configuration中,我对/ testdir / jpg_or_txt文件没有限制。 怎么做?

Nginx通过代理redirect,重写和保留URL

在Nginx中,我们一直试图redirect一个URL,如下所示: http://example.com/some/path -> http://192.168.1.24 用户仍然可以在浏览器中看到原始url。 一旦用户被redirect,说他们点击链接到/section/index.html ,我们希望这做一个请求,导致redirect http://example.com/some/path/section/index.html -> http://192.168.1.24/section/index.html 并再次保留原来的url。 我们的尝试涉及使用代理和重写规则的各种解决scheme,下面显示了使我们最接近解决scheme的configuration(请注意,这是example.com Web服务器的Web服务器configuration)。 但是,这仍然有两个问题: 它不会正确执行重写,因为Web服务器http://192.168.1.24收到的请求URL包含/some/path ,因此无法提供所需的页面。 一旦提供页面,当您将鼠标hover在链接上时,该URL中将缺less/some/path server { listen 80; server_name www.example.com; location /some/path/ { proxy_pass http://192.168.1.24; proxy_redirect http://www.example.com/some/path http://192.168.1.24; proxy_set_header Host $host; } location / { index index.html; root /var/www/example.com/htdocs; } } 我们正在寻找一个解决scheme,只涉及到更改example.com上的Web服务器configuration。 我们可以改变192.168.1.24 (也是Nginx)上的configuration,但是我们想要避免这种情况,因为我们需要为通过example.com访问的数百个不同的服务器重复这个设置。