【问题标题】:htaccess query string based rewrite ruleshtaccess 基于查询字符串的重写规则
【发布时间】:2014-05-15 11:50:44
【问题描述】:

服务器软件的最新更改导致基于标签的搜索返回内部服务器错误。我想通过使用基于查询字符串包含 tag= 引用的条件的重写规则来更正此问题。重写规则将采用包含 tag= 字符串的任何 url 并重写它以删除子目录。以下是示例:

传入网址: http://www.example.com/subdirectory/?tag=sometag

结果网址: http://www.example.com/?tag=sometag

我猜我的重写条件应该是:

RewriteCond %{QUERY_STRING} tag=* $ 

而重写规则应该是这样的:

RewriteRule ^subdirectory / [R=301,L]

这在 htaccess 测试工具中有效,但在我的服务器上返回内部服务器错误。我假设我在条件或规则中犯了错误。

【问题讨论】:

    标签: apache .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    发生内部错误是因为您在tag=* 之后和$ 之前有一个空格

    变化

    RewriteCond %{QUERY_STRING} tag=.* $ 
    

    RewriteCond %{QUERY_STRING} tag=.*$ 
    

    应该修复那个错误

    【讨论】:

    • 是的。做到了。谢谢。
    • 没问题,请随意将答案设为正确,以便与您有相同问题的其他用户知道您是如何解决问题的。
    猜你喜欢
    • 2018-11-20
    • 2011-04-18
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 2019-10-31
    相关资源
    最近更新 更多