【问题标题】:htaccess redirect with parameters not workinghtaccess 重定向参数不起作用
【发布时间】:2013-04-15 13:30:05
【问题描述】:

我正在为 Apache 重写而苦苦挣扎。我需要执行以下操作:

永久重定向:

http://domain.com/folder/viewer/data/settings.xml?prevent_cache=4760

http://domain.com/siteid/includes/themes/siteid/swfs/viewer/data/settings.xml?prevent_cache=4760

我有下面的代码,它可以在没有 url 参数的情况下工作,但我似乎无法让它与参数一起工作。我错过了什么吗?

RewriteCond %{QUERY_STRING} ^prevent_cache=([0-9]*)$
RewriteRule ^/folder/viewer/data/settings.xml$ http://domain.com/siteid/includes/themes/siteid/swfs/viewer/data/settings.xml [R=301,L] 

干杯

肖恩

【问题讨论】:

    标签: .htaccess mod-rewrite redirect


    【解决方案1】:

    我能看到的唯一错误是RewriteRule 模式中的前导斜杠/。这应该是

    RewriteCond %{QUERY_STRING} ^prevent_cache=[0-9]*$
    RewriteRule ^folder/viewer/data/settings.xml$ /siteid/includes/themes/siteid/swfs/viewer/data/settings.xml [R,L]
    

    您不需要将查询字符串附加到替换 URL,因为这是自动完成的。

    当一切正常时,您可以将R 更改为R=301。切勿在启用 301 的情况下进行测试,有关详细信息,请参阅此答案 Tips for debugging .htaccess rewrite rules

    【讨论】:

    • 完美!感谢您的帮助
    【解决方案2】:

    我可以。以下是您要查找的重写条件和规则:

    # once per htaccess file
    RewriteEngine on
    
    RewriteCond %{QUERY_STRING} prevent_cache=([0-9]*)
    RewriteRule ^folder/viewer/data/settings.xml http://domain.com/siteid/includes/themes/siteid/swfs/viewer/data/settings.xml?prevent_cache=%1 [R=301,L]
    

    但请考虑关于 [R=301] 标志的答案:https://stackoverflow.com/a/15999177/2007055

    【讨论】:

      猜你喜欢
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 2015-03-07
      • 2015-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多