2016-01-28 54 views
2

我已經爲這個問題煩惱了3天,無論我搜索Google或閱讀Helion網站有多不同,我都無法理解我做錯了什麼。所以,我希望有人能夠幫助我。我的重寫代碼在.htaccess文件中有什麼問題

我使用.htaccess文件來創建搜索引擎友好的URL,它已運行好幾年。

我的網絡託管公司現在已將我的網站移至新的Windows IIS8.5服務器,並且重寫不再有效。他們告訴我正在使用Helicon Ape(不知道那是什麼)。但是,我無法在Helicon網站上找到任何對我來說很有意義的事情,因爲它對於我的老養老金領導者來說太過技術化了。

下面是代碼的樣本是用於舊服務器上的工作:

# Helicon ISAPI_Rewrite configuration file 
RewriteEngine on 
RewriteBase/
RewriteRule ^uk-bed-breakfast-(.*)\.htm /bed-and-breakfast/region.asp\?county=$1 [QSA] 

這用來打開

www.mydomain.com/bed-and-breakfast/region.asp?county=first

www.mydomain.com/uk-bed-breakfast-first.htm

現在我得到的當我使用第二個URL是一個404錯誤。

我需要做任何改變,以符合IIS或赫利猿重寫的新版本,如果是這樣它們是什麼

+2

不太確定,但您可以嘗試刪除'RewriteBase'。主機提供商還有可能在'httpd.conf'中啓用'rewrite_module' - 你總是可以通過在文件頂部添加亂碼/隨機文本來判斷(如果你收到內部服務器錯誤,那麼該模塊已啓用)。 –

+0

從我可以收集的Helicon-Ape .Net模塊是一個Apache模擬器,這意味着它不一定會像「喜歡」一樣閱讀[Apache兼容性](http://www.helicontech.com/ ape/doc/compatibility.htm)有一個有用的圖表,顯示跨平臺的某些功能的可用性?這篇文章說*「Helicon Ape旨在保持最大的Apache兼容性,儘管這個目標已經在很高的水平上實現了,但有些功能可能無法實現,因爲它們與Apache或UNIX設計過於有界,並且它們在IIS上的實現是「* – Lankymart

+0

我可能只是分裂頭髮,但規則'重寫規則^ uk-bed-breakfast - (。*)\。htm /bed-and-breakfast/region.asp\?county=$1 [QSA] '不匹配'www.mydomain.com/bed-and-breakfast.asp?county = first'是否有一些配置丟失,你沒有顯示?這條規則不應該是'ReWriteRule^uk-bed-breakfast - (。*)\。htm /bed-and-breakfast.asp\?county=$1 [QSA]'? – Lankymart

回答

0

經過大量細緻的實驗的問題終於得到解決。

看來,與新的iis8.5服務器和Helion猿我需要把重寫規則放入web.config文件而不是.htaccess文件。

爲我的問題給的例子,新的規則是:

<rule name="Imported Rule 6"> 
        <match url="^uk-bed-breakfast-(.*)\.htm" ignoreCase="false" /> 
        <action type="Rewrite" url="/bed-and-breakfast/region.asp?county={R:1}" appendQueryString="true" /> 
       </rule> 

使用該系統的網站是在去年運作正常。

非常感謝所有試圖幫助的人。

Tog