2

我在网上看初学者指南时找不到答案。如果有人可以请帮助我,我将非常感激。

我要做的就是<a href>在我的页面上重写链接(存在于标签中),如下所示:

<a href="/mysite/products/product.cfm?id=1">/mysite/products/product.cfm?id=1</a>

进入这个:

<a href="/mysite/products/product/1">/mysite/products/product/1</a>

我可以在网上找到的所有示例都是关于入站重写规则的,例如将友好 URL 解析为真实 URL。

但是如何在我的页面上将真实的 URL 变成虚假的 URL?我正在使用 Helicon Ape,它基本上是 IIS 7.5 中的 Apache mod_rewrite。我仍然必须将所有规则都放在 .htaccess 中

如果我使用 Microsoft 的 IIS URL 重写模块,那么它允许您创建“出站”规则,以便动态地重写 HTML 标记中的链接。以下是出站规则的示例:

<rule name="Rewrite to clean URL" preCondition="IsHTML">
<match filterByTags="A" pattern="^/article\.aspx\?id=([0-9]+)$" />
<action type="Rewrite" value="/article/{R:1}" />
</rule>

<a>因此它会重写标签中看起来像的任何链接/article.aspx?id=1并将其变为/article/1

4

1 回答 1

1

您可以使用:

# externally redirect: /mysite/products/product.cfm?id=1 to /mysite/products/1
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(mysite/products)/product\.cfm\?id=([^\s&]+) [NC]
RewriteRule ^ /%1/%2? [R=301,L]

# internal forward: /mysite/products/1 to /mysite/products/product.cfm?id=1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(mysite/products)/([^/]+)/?$ /$1/product.cfm?id=$1 [L,QSA,NC]
于 2013-09-17T12:34:18.283 回答