2016-01-28 46 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