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 に変えるにはどうすればよいでしょうか? 基本的にIIS 7.5内のApache mod_rewriteであるHelicon Apeを使用しています。すべてのルールを .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 に答える