问题标签 [rewritemap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
87 浏览

apache - mod_rewrite 基于 IP 并使用链接文件夹名称

我想使用 .htaccess 重写基于访问者 IP 地址的文件夹。我有一个带有关联用户名的 IP 地址列表(在文本文件中)。用户名也是文件夹名称。

  • 192.168.0.2 - 约翰
  • 192.168.0.3 - 本

示例:当 John (IP ..0.2) 访问 www.domain.com 时,他必须看到文件夹 /John 的内容

因为用户名-IP 绑定将在 PHP 中进行,所以我更喜欢使用 RewriteMap,这样我就可以生成一个 .txt 文件。

不幸的是,我必须知道从哪里开始。基于用户IP重写不是问题,问题是找到链接的用户名。

任何帮助表示赞赏!

0 投票
2 回答
109 浏览

.htaccess - 使用 RewriteMap 错误重写 URL

我必须重写大量 URL, 例如: FROM: http://www.lespoulettes-bijoux.fr/produit2.asp?id_produit=8489 TO: http://www.lespoulettes-bijoux.fr/colliers-femme-createur -fantaisie/femme-collier-ras-de-cou-fils-d-argent-et-6-perles-blanches-et-grises-10005.html

所以我选择做一个 RewriteMap 因为我的 URL 没有相同的 ID 来匹配。

所以我宣布了我的 RewriteMap 是这样的:

在我的 .htacess 中:我想转换我的 URL 以将我的 GET 参数 (id_produit) 转换为一个内部 id,以便在我的 ReWriteMap 之后将其 git。

问题:我在转换我的 URL 时遇到错误 500,并且我不知道转换后的正确语法来切换它:

恢复:我想将“www.exemple.com/produit2.asp?id_produit=8489”切换到 www.exemple.com/produit2.asp/id=8489 并将 id 发送到我的 RewriteMap 以重定向到正确的 URL。

谢谢你的帮助!

0 投票
1 回答
527 浏览

azure - 静态 url 重写,使用重写映射不起作用

我在 azure 上有一个网站,我正在尝试为我的网站使用一些用户友好的 url。

我已经下载了 IIS 远程管理器,并按照此处的说明进行操作。虽然文章是从 2008 年开始的,但远程 IIS 管理器的 GUI 还是几乎一样。

在定义了重写映射和查看映射内部的规则之后,这是生成的 web.config:

当我在地址栏中输入时:mydomain.com/niceurlpart 我得到:“您要查找的资源已被删除、名称已更改或暂时不可用。”

此外,当我尝试在远程 IIS 管理器中测试模式时,它失败了..

我错过了什么吗?

0 投票
1 回答
4325 浏览

iis - IIS URL 重写映射和通配符 URL

使用 IIS Url Rewrite,是否可以使用 RewriteMaps 匹配通配符 URL?例如,我有以下重写规则:

它使用以下 RewriteMap:

我想修改我的 RewriteMap 以包含通配符 URL,因此我有一个add与以下 URL 匹配的元素:

这样的事情可能吗?

0 投票
1 回答
145 浏览

apache - 使用文件的存在或不存在有条件地将 Apache 中的 IP 列入白名单

我找到了一个很好的解决这个问题的方法,但它缺少我需要的一个组件。这很接近:

大多数时候我想限制对该站点的访问,但有时我希望许多(beta 测试人员)能够访问。那时,最简单的方法就是让任何人在测试期间访问该站点。所以我真正想做的是有条件地应用白名单。如果存在 whitelist.txt 文件,则限制访问。但如果没有文件,则让任何人访问该站点。或者,找到其他方法。

我已经搜索过类似的东西,但我上面的内容已经尽可能接近了。我可以*.*.*.*在需要时在 whitelist.txt 中使用以允许所有 IP 吗?或者有没有更好的方法来“打开和关闭”IP限制逻辑?

0 投票
1 回答
1454 浏览

apache - 具有通配符条件的 Apache RewriteMap

我正在使用带有文本文件的 apache RewriteMap 将一些旧网址映射到新网址,在我的文件(red.map)中我有

然后在我的 apache 配置中,我有:-

这工作正常,但现在我想在条件中添加一个通配符以匹配一些具有相同结尾但/cgi-bin/scriptname在前面的旧网址,例如我也想匹配/cgi-bin/scriptname/old-awful-url.html

我尝试将 RewriteCond 更改为:-

认为这将匹配文件中 url 前面的任何内容,无论有无 cgi 部分,我尝试了一些组合但没有成功,这可能吗?

0 投票
0 回答
306 浏览

apache - 使用 RewriteMap、RewriteCond 和 RewriteRule,无法从地图中检索默认值

我正在使用 apache 将用户的应用程序从旧服务器重定向到新服务器。这是基于用户的 x-user-id 标头完成的。我创建了一个 RewriteMap ,其中包含 x-user-id 新 url 以使用映射。

我有以下重写配置。

我也试过这个配置的最后一行...

当 x-user-id 不在地图中时,发送到 serverV1.domain.com。当用户在地图中时,我什么也得不到。在这种情况下,它应该是 serverV2.domain.com。

我想不通的是如何检索与 LookupKey 对应的 DefaultValue。有人可以指出我做错了什么吗?

谢谢!

0 投票
1 回答
2217 浏览

apache - 完整 URL 的 Apache RewriteMap 语法

我有一个包含大约 5000 个条目的重写映射,如下所示:

http://www.example.com/some-random-url http://www.example.net/some-random-url

对于每个条目,源域(例如上面的 example.com)是相同的,但目标域(上面的 example.net)是不同的域。路径模式也会随着每个 URL 的变化而变化(我希望我可以发布 2 个以上的链接!)

到目前为止,我所拥有的是:

重写引擎开启

RewriteMap examplemap "txt:/etc/httpd/conf/redirect.txt"

RewriteCond ${examplemap:$1} !=""

RewriteRule ^/(.*) ${examplemap:$1} [redirect=permanent,last]

我似乎无法获得 RewriteCond 和 RewriteRule 指令的正确语法,如果有任何帮助,我将不胜感激,谢谢。

0 投票
2 回答
1070 浏览

regex - 重写映射规则以匹配任何 URL 扩展

我对重写地图还很陌生,但我们确实让我们的地图在非常基础的层面上工作。网站重新设计后,我们设置了一个广泛的重写地图(数千条规则),将旧页面指向新页面。我们遇到的麻烦是我们必须为同一页面添加多个值才能使重写工作。

例子:

应该有一种方法可以在正则表达式中的基本 URL 之后使用通配符 - 我期待这样的东西:^. /[about] $ 如果所有 url 都包含“about”但它们不包含,那将会很棒。

另请注意,我们不是按目录重定向,而是按文件名重定向。这是我们的 CMS 设置为不使用 .aspx 扩展名,因此任何扩展名都可以使用。

我想要的是只需要为每个 URL 设置一个规则,如下所示:“ http://www.abc123.com/about ”,它会将上述所有变体指向新 URL,无论它是否没有扩展名,或者如果扩展名是 .html、.asp、.aspx 或 .whatever

这超出了重写规则的能力,还是我缺少一些基本的正则表达式?

这是我们使用的规则:

任何见解将不胜感激。

0 投票
1 回答
656 浏览

apache - 通过 Rewrite Map 后从 URL 的末尾删除 Query String

我在重写映射中有数百个 URL 重定向/重写的列表。大多数 URL 包含与重写映射中的特定条目匹配的查询字符串。我发现了这个关于如何将查询字符串传递到重写映射中的问题。我得到了这个工作正常,但现在的问题是现有的查询字符串被附加到重写 URL 的末尾。例如:

这是我的重写规则:

重写后如何删除附加到 URL 的查询字符串?

编辑

我实际上可以使用这个来完成这个工作:

但是我不确定是否有人知道更好的方法来完成我正在做的事情?我认为如果我必须将包含查询字符串的 URL 重定向到另一个包含查询字符串的 URL,这可能会中断。