我试图使用IIS Isapi改写做到以下...

我需要搜索引擎友好的网址是(默默地)转换回的应用程序的友好的网址如下所示:

RewriteRule ^/seo-friendly-url/ /test/index.cfm [I,L]

很简单的。

但我还有需要的网址已编入索引的,搜索引擎(例如)进301重要的搜索引擎友好版本。像这样:

RewriteRule ^/test/index.cfm    /seo-friendly-url/ [I,R=301]

这些工作现在的隔离。但当我有我的.ini file我结束/搜索引擎优化-友好的-url/显示出在我浏览器的地址吧但我提供一个404.(是的,测试//索引。cfm肯定存在!)

我知道这看起来像一个圆形的参考,但该第一条规则仅仅改写URL之间IIS和应用的-有没有重新定向,因此我不打Isapi改写第二次。还是我错吗?

我已经启用,登录Isapi改写和我看到下面的:

HttpFilterProc SF_NOTIFY_PREPROC_HEADERS
DoRewrites
New Url: '/seo-friendly-url/'
ApplyRules (depth=0)
Rule 1 : 1
Result (length 15): /test/index.cfm
ApplyRules (depth=1)
Rule 1 : -1
Rule 2 : 1
Result (length 18): /seo-friendly-url/
ApplyRules: returning 301
ApplyRules: returning 1
Rewrite Url to: '/seo-friendly-url/'

任何人有任何想法?

有帮助吗?

解决方案 2

通过一些试验和错误我已经想出了一个解决方案。

指定重定向匹配是在使用$符号的字符串的末尾:

RewriteRule ^/test/index.cfm$    /seo-friendly-url/ [I,R=301]

请所重写的URL从重定向匹配字符串平凡不同 - 在这种情况下添加的不必要的“?”:

RewriteRule ^/seo-friendly-url/ /test/index.cfm? [I,L]

其他提示

你有两个不同的写在这里,它应该作如果你这样做是正确的

  1. 第一个是从未见过的客户用户的代理。它请求/搜索引擎优化-友好和你重写国内和回应

  2. 第二个是不是真的一个重写,但一个重定向。你送那回客户和它重新请求/搜索引擎优化-友好的-我认为你需要使用[R=301,L]说这是底线路--仅返回(L不会)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top