问题标签 [isapi-rewrite]

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 回答
210 浏览

iis - 使用 mod_rewrite 清理 IIS 中的 URL

我有一个 mod_rewrite 问题。或者更准确地说,我对 ISAPI_Rewrite 有疑问,它是 IIS 的 mod_rewrite 克隆。具体来说,ISAPI_Rewrite v3 在 IIS 7 上运行。它的目标是与 mod_rewrite 的行为相同,所以我希望我的问题也适用于 mod_rewrite。

我的问题归结为:我有一个脚本bar.php,我想通过 URL 访问它foo。我首先重写foobar. 然后尝试将干净的 URL 转换为真实的文件名。

RewriteCond失败是因为仍然说“foo”而${REQUEST_FILENAME}不是“bar”。第一次重写后不更新。

我怎样才能使这项工作?我可以通过简单地编写来解决这个问题RewriteRule ^foo$ bar.php。但我强烈希望将 URL 重新映射规则与文件扩展名规则分开。

0 投票
1 回答
41 浏览

asp.net - IIS重写ala SO

假设我有一个名为

http://sub.example.com/

我想重写请求,以便在用户输入时:

http://sub.example.com/id/company-name

它应该在内部重写为:

http://sub.example.com/public.aspx

(我想这类似于 SO 问题链接的处理方式,其中所有问题都有唯一的 id 和不唯一的标题,并且只有 id 用于生成页面。这样一个问题的旧链接仍然有效即使问题的标题已更改)

我尝试这样做:在Application_BeginRequestglobal.aspx首先认识到请求的页面是“公共”页面时。然后我做一个

HttpContext.Current.RewritePath("~/public/default.aspx", False)

然后我获取 id以~/public/default.aspx动态生成公司特定页面(例如公司徽标和名称)。这在我的本地开发环境中运行良好,但在服务器上似乎没有触发 Application_BeginRequest。我猜这是因为请求的文件夹不存在?

我该如何解决这个问题,或者有更好的方法来实现这个行为?

0 投票
1 回答
774 浏览

.htaccess - 带有 .htaccess 的 SEO 友好 URL

有人可以帮我重写一些 URL 吗?

我有(例如)这些页面:

并希望他们被要求为:

我正在使用 IIS,起初我的托管服务提供商使用带有 httpd.ini 文件的 ISAPI_Rewrite,现在他们已经切换到带有 .htaccess 文件的 Helicon Ape。见:http ://www.isapirewrite.com/和http://www.helicontech.com/ape/

我尝试了 ISAPI_Rewrite 方式:

但它不起作用。

建议?

0 投票
2 回答
2079 浏览

asp.net - IIS Express 上的 ISAPI 重写

随着 Visual Studio 2010 SP1 和 IIS Express 的发布,我们希望在其上运行我们的 asp.net 3.5 网站,而不是在我们的本地开发机器上运行我们的 iis5 实例。

除了我们使用 ISAPI 重写的 url 重写规则之外,我们所有的代码都运行良好。我们选择 ISAPI_Rewrite 3 因为它与 apache .htaccess 文件非常相似。

我们如何将 ISAPI Rewrite 与 iis express 一起使用?

0 投票
2 回答
94 浏览

iis - 帮助重写规则

我有以下重写规则:

当我的 URL 是: http: //www.somedomain.com/Tony

我得到以下结果:/MyPage.aspx?Name=Tony但我需要更改它以使其适用于这种类型的 URL: http: //www.somedomain.com/MemberPages/Tony

有人可以告诉我正则表达式应该是什么吗?不幸的是,我对正则表达式不太擅长,因此不胜感激。

谢谢,

托尼

0 投票
2 回答
1143 浏览

asp.net - 仅当存在重写的目标 URL 时,如何使用 ISAPI-Rewrite 重写 URL?

或者相反,如果 URL 不存在,我如何才能重写它?例如,拦截 404s。

上下文如下:我们正在慢慢地将我们的站点从 ASP 经典迁移到 ASP.NET。慢慢地,我的意思是将 9000 多个 .asp 页面一次一页转换为 .aspx。

在这样做的同时,我们希望防止任何断开的链接,并避免丢失搜索引擎中的任何排名。这意味着我们所有的 .asp URL 必须继续存在,即使它们将由 .aspx 页面提供服务。

我想要做的是拥有将重写 .asp -> .aspx 的 ISAPI 重写规则,除非目标 URL 实际上不存在,在这种情况下它只会执行并返回 .asp。

因此,如果我们还没有将 somepage.asp 转换为 .aspx,则 URL 不会被重写,并且会显示 somepage.asp。一旦 somepage.asp 消失,URL 将被重写为 somepage.aspx,它会被执行并返回,但 Web 浏览器/搜索引擎会认为它收到了 somepage.asp。

在未来的某个时候,我们会在 .aspx 页面中设置规范的 url,让搜索引擎在方便时赶上。

注意:我已经尝试在 IIS 上使用自定义 404 来检查文件系统并在目标 .aspx 页面存在时执行 Server.Transfer,但是您无法从 asp classic 传输到 asp.net。(您会得到“指定的 'Page Language="c#" ' 选项未知或无效。错误 '8000d001'" )唯一可行的方法是我们执行 301/302 重定向而不是 Server.Transfer,那就是在这个时候对我们来说是不可取的。(管理层是偏执狂,说不是一种选择。)

0 投票
1 回答
988 浏览

isapi-rewrite - Isapi Rewrite:从 www 到 non-www,同时从 http 到 https

我都试过了!

这个:

仅当我不将 http 放在开头时才有效

如何使它工作:如果有 http 重定向到 https 如果有 www 重定向到非 www,当然两者同时

和查询后的每个子文件夹!

0 投票
1 回答
781 浏览

iis-6 - 带有 ISAPI 重写的 windows 2003 上 yourls.org 重定向的问题

我已经使用 ISAPI 重写在我拥有的 Windows 2003 VPS 服务器上设置了 yourls.org(URL 缩短服务)。我已经安装了 ISAPI rewrite 并使用 Wordpress,所以我知道这是有效的。我使用了页面建议的规则:

http://code.google.com/p/yourls/wiki/htaccess

在我的 ISAPI 重写中,但重定向不起作用。页面正在循环,试图重定向到自身。

我不熟悉重写规则,因此将不胜感激。我应用的规则是:

我根据在应用程序的 wiki 中找到的内容添加了第三条条件行。

如果有人能解释为什么这不起作用,我将不胜感激。

0 投票
1 回答
140 浏览

apache - 从 isapi_rewrite (win) 迁移到 mod_rewrite (linux) 问题

我一直在 Windows 上使用 isapi_rewrite,但我想转移到 linux/apache 并在转换我现有的规则时遇到了问题。我在以下网址重写之后:

访客/提供的示例网址:*.php/param1/value1/param2/value/2/param3/value3/paramx/valuex

匹配到:whatever.php?value1=param1¶m2=value2¶m3=value3¶mx=valuex

我以前在 isapi_rewrite 中使用过这个规则:

但是 LP (Loop) 不是 apache mod_rewrite 标志,我无法弄清楚如何用 mod_rewrite 中的合适规则替换此规则。

最主要的是参数/值的数量是未知的,所以它需要用 / 替换所有的?、& 和 =。我很感激我可以通过删除参数和文件名使模式更清晰,但我真正想做的是将应用程序转移到 linux 并在更改应用程序引用链接的方式之前工作。

谢谢希望...

0 投票
1 回答
154 浏览

url-rewriting - (ISAPI_Rewrite) 请求特定文件时重写域

我正在尝试创建一个条件, 当请求具有 foo/foofile.txt 时,将URL 从http://subdomain.example.com/foo/foofile.txt重写为http://example.com/foo/foofile.txt在里面。如果有人能指出我正确的方向,我将不胜感激任何和所有的帮助......

在此先感谢,B