【问题标题】:Generic URL rewrite keeping query string通用 URL 重写保留查询字符串
【发布时间】:2017-06-09 19:40:24
【问题描述】:

什么是正确的 Apache mod_rewrite 规则来更改任何内容

mydomain.com/?var1=val1&var2=val2&...&mode=app_mode&varN=valN&...

输入查询到

mydomain.com/app_mode/?var1=val1&var2=val2&...&varN=valN&...

(如果QUERY_STRING 中不存在mode 变量,则URL 应保持原样。)

【问题讨论】:

    标签: regex apache url mod-rewrite


    【解决方案1】:

    您可以在根 .htaccess 中使用此规则:

    RewriteEngine On
    
    RewriteCond %{QUERY_STRING} ^(.*&)?mode=([^&]+)(?:&(.*))?$ [NC]
    RewriteRule ^/?$ /%2/?%1%3 [L,R=302,NE]
    

    这允许mode 参数位于查询字符串中的任何位置。

    【讨论】:

    • 我不确定它是否正确。关键是,app_mode 来自QUERY_STRINGmode 参数,因此必须将其提取为路径,而QUERY_STRING 的其余部分保持原样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 2011-08-02
    相关资源
    最近更新 更多