我試圖將一些簡單的.htaccess重寫轉換爲web.config xml;一切都很好,但是我遇到了一個涉及查詢字符串的問題。將.htaccess轉換爲web.config時查詢字符串追加
這裏是的.htaccess規則:
RewriteRule ^table/([a-zA-Z0-9\-_]+)/delete/([^/\.]+)$ table-index.php?mode=delete&type=$1&id=$2 [QSA,L]
這是我如何把它翻譯:
<rule name="delete">
<match url="^table/([a-zA-Z0-9\-_]+)/delete/([^/\.]+)$" ignoreCase="true" />
<action type="Rewrite" url="table-index.php?mode=delete&type={R:1}&id={R:2}" appendQueryString="true" />
</rule>
從本質上講,我做了這個相同的,因爲我有與所有其他的(工作)規則,但這一個不是打球。唯一的區別是這個規則在.htaccess中有一條[QSA]
指令,我將其轉換爲appendQueryString="true"
。
規則不破IIS,它只是不工作,要麼 - 應該怎樣爲顯示:
http://my.site/admin/table/mailing-list/delete/1?confirm=true
被顯示爲
http://my.site/admin/table-index.php?confirm=true
一個缺少相當多的重要的信息並導致事情不會發生......當URL中沒有?confirm = true查詢字符串時,同樣的規則正常運行。
任何人都可以協助嗎?
很高興你的工作。我嘗試使用您的正則表達式,但它只適用於以'table /'開頭的文本,所以任何網址都無法使用它。 – TWickz
是的,這是針對不同目的的一些規則之一,在這種特殊情況下 - 它只是用於某些URLS。我認爲正則表達式應該工作,因爲它在htaccess中起作用,所以起初不清楚哪裏出了問題。去證明,有時用新鮮的眼睛看東西是一種方式! – Codecraft