【问题标题】:htaccess redirect dynamic old file to new Filehtaccess 将动态旧文件重定向到新文件
【发布时间】:2012-07-29 14:57:43
【问题描述】:

我已经升级了我的网站并更改了文件的一些位置。一部分是用于创建提要。所以在我以前有这个之前:

mydomain/plugins/rss/feed.php?id=187

但现在变成了:

mydomain/feed.php?from=category&id=187

唯一改变的部分是来自变量的 ID 没有改变。我试过了:

RewriteRule ^plugins/rss/feed.php?id=([0-9]+)$ feed.php?from=category&id=$1 [R=301,L]

但这不起作用...有人知道如何将其重定向到新的吗??

【问题讨论】:

    标签: .htaccess url redirect dynamic


    【解决方案1】:

    您无法匹配 RewriteRule 命令中的查询字符串(URI 中 ? 标记之后的所有内容)。但是由于它不需要更改,所以你不需要搞砸它。如果您删除该检查,您的规则应该可以正常工作。尝试将其更改为:

    RewriteRule ^plugins/rss/feed.php /feed.php?from=category [R=301,L,QSA]
    

    需要在此处添加标志 QSA 以附加任何现有的查询字符串,在本例中为 id= 部分。

    【讨论】:

    • 你能在没有 403 的情况下到达 /feed.php?from=category&id=187 吗?
    • 嗨,乔恩,我刚刚制定了另一条规则:将 search.php?what=search+whatever&type=1 重写为 buscador.php?what=search+whatever&type=1 并且我放置了以下规则 RewriteRule ^ search.php$ /buscador.php [R=301,L,QSA] 而这个正在工作......不明白为什么另一个没有。也许是因为 /plugins/rss/feed.php 位于子目录中,而新的位于根目录中...
    • @user1566662 不知道为什么会出现 403,除非您在 /plugins//plugins/rss/ 目录中有其他规则,否则它在子目录中应该没有关系。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 2012-10-28
    • 2014-12-04
    • 2020-02-26
    • 1970-01-01
    相关资源
    最近更新 更多