2014-01-17 56 views
4

我見過類似的問題,但沒有人可以真正符合我現在的問題...URL重定向工作正常,但重寫給404

我有IIS7 URL重寫模塊和我試圖建立我認爲是「簡單」重寫的內容。下面是我使用的是什麼:

  <rule name="PPConnectDesigner" enabled="true" stopProcessing="true"> 
       <match url="^en/planetpress_connect_designer/(.*?).(html|htm)$" /> 
       <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> 
       <action type="Rewrite" url="/robohelp/server?area=en&amp;mgr=agm&amp;agt=wsm&amp;wnd=Connect Designer|defaultwindow&amp;tpc=/robohelp/robo/server/en/projects/Connect Designer/Designer/{R:1}.htm&amp;RINoLog28301=T&amp;ctxid=&amp;project=Connect Designer" appendQueryString="true" logRewrittenUrl="false" /> 
      </rule> 

這給了我一個404錯誤,詳細的錯誤信息具有處理程序StaticFile和錯誤代碼是0x80070002 ...但是,被請求的URL是正確的,如果我只是從錯誤頁面複製它並將其粘貼到另一個瀏覽器選項卡中,則可以正常工作。

另外,如果我從複寫重定向更改規則,它完美的作品!

附加信息

一兩件事,我意識到的是,我確實有與重寫工作的一些規則。而且,除了那些工作指向不是html的文件(我有一個CSS和一些JavaScript)的事實之外,只有一個非常明顯的區別:那些不工作的指向一個由Tomcat應用程序(特別是RoboHelp服務器)提供的HTML頁面。我想知道這是不是一個相關點:如果IIS的重定向無法看到由tomcat提供的頁面,而我的瀏覽器沒有問題呢?

回答

1

您可能要檢查IIS日誌。他們應該告訴你什麼路徑IIS試圖以服務時發生404

+0

日誌甚至比狀態頁,我得到,而在本地訪問我的乾淨的URL再多也沒用 - 所有這說的是,這是一個404與時間表和我的用戶代理。不是很有用。 –

1

重寫是內部的,同一服務器內,所以服務器查找自身頁面,不問Tomcat來尋找它。

總是使用重定向如果你已經做網址可見用戶

http://forums.iis.net/t/1174487.aspx?How+does+URL+Rewrite+differ+from+HTTP+Redirect+

+0

我的目標是做乾淨的URL,所以做一個重寫是我想要做的。請注意,tomcat本身位於同一臺本地服務器上(但我想表示IIS是服務器,Tomcat也是服務器,所以交叉通信不起作用)。是否有解決方法(即使使用不同的重寫軟件),還是我被迫向訪問者展示這些醜陋的長URL? –

+0

在tomcat中編寫從漂亮到醜陋的網址的重定向,並在iis中的任何地方使用漂亮的網址。另外,你可以考慮從robohelp重命名你的tomcat服務器地址來幫助或者漂亮的東西。 –

+0

我已經有了可以在任何需要它們的地方工作的漂亮的URL,這個問題特別針對tomcat。所以基本上,我的問題是:是否有另一個urlrewrite應用程序在這種情況下工作? –