我正在使用 Intelligenicai.URLRewriter.dll 来重写我的网站网址它工作正常我按照以下链接作为示例
在我读到的关于URL重写的另一篇文章中,可能会为搜索引擎带来问题,因为现在我们可以使用两个不同的URL访问相同的页面而不重写URL,另一个使用URL重写。 (查看此链接http://thecodebug.com/?p=296)
上面提到的关于搜索引擎的链接谈话可能会在网站上发现重复内容时受到惩罚。这篇文章(http://thecodebug.com/?p=296)谈到“标题 中的 html规范链接”,如果我们不添加它们那么我们可以告诉搜索引擎这个网址是规范的。
现在我的问题是这适用于即使我使用Intelligenicai.URLRewriter.dll,如果这是事实我应该采取什么预防措施来避免这种情况。
我的网址示例 使用URL重写 http://www.xyz.com/Article/en-US/19/87/let-the-spirit-of-our-nation的创始人导-us.aspx
不重写的网址 http://www.xyz.com/Article/ArticleDetails.aspx?Language=en-US&PageID=19&ArticleID=87
web.config的一部分
<rewriter>
<rewrite url="~/Article/(.+)/(.+)/(.+)/(.+).aspx" to="~/ArticleDetails.aspx?Language=$1&PageID=$2&ArticleID=$3" processing="stop"/>
</rewriter>
答案 0 :(得分:1)
您可以添加2个规则:一个重写新物理链接到物理URL然后停止处理规则,然后按照规则将其直接请求重写到aspx页面到新样式URL,301永久重定向,并停止处理规则。 301重定向很重要!如果你不能用你的重写DLL来做到这一点,那么你可以将URL重定向到一个特殊的隐藏页面,它将接受旧页面作为查询字符串或查看引用者,然后使用一个映射到新页面301重定向那里。
更新:以下是更多信息:
使用Intelligenica UrlRewriter,您将按以下顺序设置两个规则:
第一条规则使用您已设置的规则将花式URL重定向到物理文件。
第二条规则采用物理文件的路径,并且(a)404或(b)301 permanent 重定向到花哨的URL。如果您有一个页面提供多页内容,那么最好只停止处理404错误。此外,只要你从不在网站的任何地方使用旧式链接,你应该没问题。如果在任何时候您使用旧样式链接(在重写URL之前),您肯定需要确保重写设置为重定向或404页面以便强制使用新样式URL。
<rewriter>
<rewrite url="~/Article/(.+)/(.+)/(.+)/(.+).aspx" to="~/ArticleDetails.aspx?Language=$1&PageID=$2&ArticleID=$3" processing="stop"/><!-- rewrites URL -->
<rewrite url="~/ArticleDetails.aspx?Language=(.+)&PageID=(.+)&ArticleID=(.+)" to="~/Article/$1/$2/$3.aspx" processing="stop" permanent="true" /><!-- Redirects old page to new url with 301 -->
</rewriter>
希望这有帮助。