【问题标题】:url-rewriting and rss feed (feedburner) issueurl-rewriting 和 rss feed (feedburner) 问题
【发布时间】:2012-11-15 09:17:07
【问题描述】:

我正在使用以下规则来读取 URL,例如

网址: http://www.example.com/blog/sampe-post-title/10004/

规则:

RewriteRule (.*)/(.*)/([0-9]+)/$ $1/details.asp?mod_id=$3 [NS,I]

一切都很好,直到我发现来自 feedburner 的链接不再起作用。因为 feedburner 为 URL 添加了一些额外的参数用于统计/跟踪等。

例如 www.example.com/blog/sampe-post-title/10004/?utm_source=feedburner&utm_medium=email&utm_campaign=Feed:+somesite+(my+feed)

我的重写 URL 不再识别上述 URL。知道如何处理吗?

【问题讨论】:

    标签: mod-rewrite rss url-rewriting feed


    【解决方案1】:

    尝试为 feedburner URL 添加规则:

    RewriteRule (.*)/(.*)/([0-9]+)/\?(.*)$ $1/details.asp?mod_id=$3&$4 [NS,I]
    

    我在末尾添加了一个额外的 RegEx 组来捕获问号后的所有内容并将其放在mod_id 之后。如果您出于某种原因只想拥有一个规则,则可以将其与您的其他 URL 结合使用,但您也可以只拥有两个。

    【讨论】:

    • URL 查询不是 URL 路径的一部分。所以你不能用RewriteRule 测试它,因为它只在 URL 路径上运行。您需要 RewriteCond 指令来执行此操作。
    【解决方案2】:

    尝试使用 QSA 标志以将原始请求的 URL 查询自动附加到新的查询中。

    【讨论】:

      【解决方案3】:

      我自己想出了答案:只需将结尾的$ 替换为.* 就可以了!

      这是修改后的规则:

      RewriteRule (.*)/(.*)/([0-9]+)/.* $1/details.asp?mod_id=$3 [NS,I]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-21
        • 2023-03-28
        • 1970-01-01
        • 2015-03-01
        • 2012-01-03
        • 1970-01-01
        相关资源
        最近更新 更多