2011-11-22 191 views
0

我想创建一个规则查询重定向到一个页面(不存在)到另一个网址重写:重定向一个网页到另一个

例子:

http://www.example.com/en/page.asp?id=2&... 

http://www.example.com/en-US/newpage.asp?id=2&... 

我使用这样的规则:

<rule name="Redirect" stopProcessing="true"> 
    <match url="page\.asp\?(.+)$" /> 
    <action type="Rewrite" url="newpage.asp?{R:1}" /> 
</rule> 

但是这不起作用...我得到了404错误...

我的错误是什么?

感谢

回答

3
  1. URL重写的重写操作仅用于重写网页网址 被显示在浏览器,但它预计原来的页面 存在于服务器上。对于您的情况,您需要重定向操作。
  2. 正则表达式需要更改以反映最终URL中的“en-US”。

试试这个代码,而不是:

<rule name="Redirect" stopProcessing="true"> 
    <match url="en/page\.asp\?(.+)$" /> 
    <action type="Redirect" url="en-US/newpage.asp?{R:1}" redirectType="Permanent"/> 
</rule> 

永久重定向有助于使你的网站SEO(搜索引擎优化),防止搜索引擎机器人索引旧的URL(和2之间,因此不会分裂网页排名网址)。

+0

好的,重定向是更好的,我不知道原来的页面应该存在...但它反映后有意义;)。你的例子不起作用。我会更新我的问题,以便更加准确 – Tuizi

+0

啊,你有en-US在新的URL,这是不被你的正则表达式照顾。因此你得到了404.在我的答案中编辑了代码来反映这一点。 – Kash

+0

错误404然而...为什么? – Tuizi

相关问题