标签: rewrite

重新启动时 URL 重写规则丢失

每次我重新启动服务器时,我的 URL 重写规则似乎都会重置。每次都重新创建它们显然非常令人沮丧!

我正在运行 Windows Server 2008 R2(完全更新)、IIS 7.5 和 IIS URL Rewrite 2.0。

有谁知道是什么导致了这种情况?先感谢您。

iis rewrite

5
推荐指数
1
解决办法
2204
查看次数

如何在 nginx 1.0.5 中启用重写功能?

我最近用 php fpm、php apc 和 postgres 安装了 nginx 1.0.5。我只想玩弄 nginx 并学习如何配置基本的东西。对于扩展测试,我决定安装 PHPBB3(运行良好)以查看 PHP + Postgres 访问是否有效。

现在我想了解重写 URL 的工作原理,并且已经发现重写的内容应该写在 nginx 配置的位置部分中。

但不幸的是,nginx 似乎忽略了我在配置中放置的每个重写规则。所以我想知道我是否必须先以某种方式打开重写功能?

nginx -V |grep rewrite什么也没显示,此外安装 nginx-extras 也没有帮助。我只是希望 nginx-extras 包含类似重写模块的东西,但不幸的是事实并非如此。

搜索 serverfault.com 和 google 没有帮助。那么——我该怎么办?:\ 任何帮助表示高度赞赏。

PS:所有软件包都是在 Debian 6 中使用 apt-get install 安装的。

编辑:下面是我的 nginx vhost 配置的摘录:

server {
            listen 80;
            server_name domain.org www.domain.org;

            access_log /var/log/nginx/domain.access_log;
            error_log /var/log/nginx/domain.error_log;
            rewrite_log on;
            events {
                     debug_connection  <my ip>;
            }
[...]
Run Code Online (Sandbox Code Playgroud)

rewrite nginx

5
推荐指数
1
解决办法
2万
查看次数

使用来自其他服务器/端口的内容重写 IIS 服务的子域

我们的主 Web 服务器正在使用 IIS 6,它显然会捕获所有端口 80 流量,并且我们在使用 Apache 托管的非标准端口 (8443) 上提供了另一个应用程序。

例如:

我希望能够在不使用端口 8443 的情况下访问 Apache 应用程序。也就是说,IIS 应该在不同端口上重写/代理来自 Apache 应用程序的内容。注意:我不想重定向用户。

这可能吗?我应该使用哪些工具?

iis rewrite iis-6 reverse-proxy

5
推荐指数
1
解决办法
1748
查看次数

在 nginx 中将 http://example.com:12345 重定向到 https://example.com:12345

我知道这一定已经得到了回答,但是我已经搜索了很长时间,找不到答案。我猜只是没有找对地方,也许有人可以帮助我。

基本上我在非标准端口上通过 SSL 运行 phpmyadmin,在本例中为 12345。

现在我已经https://example.com:12345设置好了,一切正常。现在我想添加仅键入http://example.com:12345并重定向到 https:// 的功能。

我假设以下内容会起作用,但事实并非如此。

server {
  listen        12345;
  server_name   php.myadmin.com;

  if ( $scheme = http ) {
    rewrite ^ https://php.myadmin.com:12345$request_uri? redirect;
  }
  root         /var/www/php;

  ssl           on;

  [....]
}
Run Code Online (Sandbox Code Playgroud)

这给了我一个400 bad request.

现在,在发布答案之前,请确保仔细查看重定向表单。检查下面链接中的陷阱。

https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#taxing-rewrites

此外,如果这甚至可以在没有 if 语句的情况下完成,那就太好了:

https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#using-if

rewrite ssl nginx https

5
推荐指数
2
解决办法
5402
查看次数

.htaccess 将 http 重写为 https 导致循环

在运行 varnish 的 apache 2.2 服务器上,我试图将 http -> 重定向到整个 Drupal Commons ( http://commons.acquia.com/ ) 站点的https 。

由于 varnish 缓存了一些重定向(我认为是 R=301,但不是 R=302),我首先让重定向在 :8080 工作,而 varnish 不提供该重定向。

下面的 .htaccess 代码成功地将 http://foo.example.com:8080 重定向到 https://foo.example.com。(适用于 Chrome、FF 和 Safari。)

# RewriteBase /

### Standard Drupal7 .htaccess above here  ###

# SSL REWRITES
RewriteCond %{SERVER_PORT} ^8080$
RewriteRule ^(.*)$ https://foo.example.com/$1 [NC,R=302,L]

### Standard Drupal7 .htaccess below here  ###

# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} …
Run Code Online (Sandbox Code Playgroud)

rewrite http https .htaccess apache-2.2

5
推荐指数
1
解决办法
2585
查看次数

将网站级别的重写规则保存到 applicationHost.config

在使用 IIS 管理器时,是否可以将在网站级别配置的重写规则保存到 applicationHost.config 中?(我知道如何手动执行此操作)
默认情况下,它们会保存到 Web.config 文件中。
我需要它来通过 MSDeploy 工具将规则部署到其他服务器。

iis rewrite iis-7

5
推荐指数
1
解决办法
2076
查看次数

使用 Nginx 隐藏后端路径

我在主机 B-beta 上运行 OpenNMS,其 URL 如下:

http://b-beta:8980/opennms
Run Code Online (Sandbox Code Playgroud)

我想使用 NginX 来隐藏可从主机 a-alpha 访问的路径,如下所示:

https://a-alpha/omber/nms
Run Code Online (Sandbox Code Playgroud)

所以我想我需要的是重写发送到后端的请求以将路径从 /omber/nms 更改为 /opennms - 但它对用户不可见 - 这是可以完成的事情吗?

HTTPS 已经可以正常工作了。

rewrite nginx

5
推荐指数
1
解决办法
2万
查看次数

IIS 仅针对一个域的子域从 http 重写为 https

我有一个运行多个站点的 IIS7 Web 服务器。一些站点是一个域的子域,而其他站点则是完全独立的域。我想使用 IIS 重写将一个域的所有子域站点重定向到 https,但我希望其他域保持原样。例如,我在同一 Web 服务器上有以下站点:

one.test.com, two.test.com, otherdomain.com

我想设置一个全局 IIS 重写以将http://one.test.comhttp://two.test.com重定向到 https,但 otherdomain.com 不应该受到影响。

这是我到目前为止所拥有的,当我测试正则表达式时,它似乎是正确的,但它没有重定向子域站点:

<rewrite>
            <globalRules>
                <rule name="Redirect to HTTPS" enabled="true" stopProcessing="true">
                    <match url="(.*)(\.test\.com)" />
                    <conditions logicalGrouping="MatchAny">
                    </conditions>
                    <action type="Redirect" url="https://{R1}{R2}" redirectType="SeeOther" />
                </rule>
            </globalRules>
        </rewrite>
Run Code Online (Sandbox Code Playgroud)

我是否过于复杂化或遗漏了一些明显的东西?

干杯。

iis rewrite iis-7 web-server

5
推荐指数
1
解决办法
8795
查看次数

nginx 重写 URL 以仅在未设置 cookie 时重定向

我有两个域 www.domain.com 和 www.domain.com.tw。我希望用户被重定向到最近的服务器,但如果他们想查看其他服务器,他们可以通过单击站点中的链接。

我试图用 cookie 来做,但它似乎不起作用。我认为问题在于 cookie 是为引用 URL 而不是重定向 URL 设置的,因此 nginx 甚至看不到 cookie。我怎样才能做到这一点?这是我到目前为止的尝试。

server {
    listen 80;
    server_name www.domain.com.tw;

    set $redir "";
    if ($http_accept_language ~* "en") {
        set $redir "1";
    }
    if ($http_cookie ~* "noredir") {
        set $redir "";
    }
    if ($redir = "1") {
        rewrite ^ https://www.domain.com/;
    }
}
Run Code Online (Sandbox Code Playgroud)

rewrite nginx

5
推荐指数
1
解决办法
5970
查看次数

对于 IIS7.5 网络服务器,是否可以有多个 ReWrite 规则都执行相同的操作?

我的 IIS7.5 站点有很好的重写模块。

现在,我希望添加一些 URL,它们都进入 HTTP 410-Gone 状态。

例如。

<rule name="Old Site = image1" patternSyntax="ExactMatch" stopProcessing="true">
  <match url="image/loading_large.gif"/>
  <match url="image/aaa.gif"/>
  <match url="image/bbb.gif"/>
  <match url="image/ccc.gif"/>
  <action type="CustomResponse" statusCode="410"
            statusReason="Gone"
            statusDescription="The requested resource is no longer available" />
</rule>
Run Code Online (Sandbox Code Playgroud)

但这是无效的 - 网站没有开始说有重写配置错误。

还有另一种方法可以做到这一点吗?我并不特别想为每个URL定义一个 URL 和 ACTION 。

iis rewrite iis-7.5

5
推荐指数
1
解决办法
5857
查看次数

标签 统计

rewrite ×10

iis ×5

nginx ×4

https ×2

iis-7 ×2

.htaccess ×1

apache-2.2 ×1

http ×1

iis-6 ×1

iis-7.5 ×1

reverse-proxy ×1

ssl ×1

web-server ×1