根據我的經驗,URL重寫用於其他方式。所以頁面實際上是viewentry.aspx?ID = 123,重定向將重定向到/ 123。
我想你可能是在做錯誤的方式?如果您使用IIS 7中的嚮導爲SEO友好URL設置URL Rewrite,並使用viewentry.aspx?ID = erf4d作爲基礎,它應該可以幫助您獲得所需的位置。
重定向/重寫工作,以便如果您訪問了test.com/123,它將起作用,但如果您轉到test.com/view.aspx?ID=123,它會將您發送到test.com/。 123。我認爲你在追求什麼?
Cheers
編輯:這是我使用的一個例子。它將讀取news.aspx?page = 1並重寫爲news/1 /。但是由於這些規則,新聞/ 1 /實際上也適用,所以如果需要的話,可以用錨定方式來表達。
<rule name="Redirect - /news.aspx?page=a to /news/a/" enabled="true" stopProcessing="true">
<match url="^news\.aspx$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
<add input="{QUERY_STRING}" pattern="^page=([0-9]{1,3})$" />
</conditions>
<action type="Redirect" url="news/{C:1}" appendQueryString="false" />
</rule>
<rule name="Rewrite - /news/a/ to page=a" enabled="true" stopProcessing="true">
<match url="^news/([^/]+)/?$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="news.aspx?page={R:1}" />
</rule>
謝謝我玩過你的例子,但無法讓它做任何事情:(我不知道爲什麼我不能包裹我的頭,這是我第一次嘗試URL重寫。我試圖完成的是像Instagram那樣的用戶有一個URL像test.com/abc123,他們看到的內容。在我的情況下,abc123是內容的ID,所以viewContent.aspx?ID = abc123應該實際顯示對於test.com/abc123被輸入到URL中有沒有更好的方式來做到這一點比URL重寫重定向? – Eric
這裏是我目前的規則:' '這需要我從test.com/abc123重定向到實際頁面,但顯示的URL爲 –
Eric
你試過看IIS.NET上的文檔? (http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module/)。這些例子與你正在嘗試實現的內容非常相似。你需要REDIRECT規則和REWRITE規則。他們攜手合作。不確定這一切都可以通過一個規則來實現!任何其他問題都讓我知道。 – ianbailey