我已經實現了一些URL重定向組合在IIS/ColdFusion上工作正常,但我無法處理一些正則表達式模式以減少不必要的重定向。減少鏈接的URL重定向[IIS /正則表達式/重寫]
當前IIS只處理單個重定向(最多),只有當它在URL中找到模板名稱時。例如IIS重定向到
http://example.com/something/pretty/?page=1
例如這樣的URL作爲
http://example.com/index.cfm/something/pretty/?page=1
,它只是從它後面的URL把一切都完好無損刪除模板名稱。根據我的申請,上面的最終URL是有效的。
但是,如果在最終的URL中找不到尾部的斜線(/),ColduFusion應用程序正在處理這種情況,並在最後附加一個斜槓,然後重定向到以正斜槓結尾的URL /)在查詢字符串之前(如果有)。它使用一些邏輯來保持PATH_INFO和QUERY_STRING不變。但是,在以下情況下,實際上會導致多次重定向。
[INIT] http://example.com/index.cfm/sport/badminton
[Redirect 1] [IIS-301] http://example.com/sport/badminton
[Redirect 2] [CF-301] http://example.com/sport/badminton/
現在,我要處理這一切在IIS和覆蓋在一個規則所有的情況下,我不能夠做出(或找到)一個正則表達式模式,可以做到這一點。
當前IIS重定向模式
^index.cfm/(.*)$
我已經用最簡單的
^index.cfm/(.*[^/])$
不過,這並不涵蓋與QUERY_STRING URL一起嘗試了各種各樣的人。你可以讓我真正天真地做出正則表達式。
更新1:我發現,對於這一問題的適當術語是「鏈式」重定向,發現了一篇文章,在moz.com這是一種處理我上面提到的同樣的問題。我想它應該起作用,而當我在服務器上根據需要更改規則時,我認爲我應該用我爲其他可能遇到此類問題的人所發現的問題更新此問題。只要我可以使用此解決方案來解決問題,我會立即更新。