代码之家  ›  专栏  ›  技术社区  ›  aalaap

我该如何写一篇文章。将查询字符串转换为分段URI的htaccess重写规则?

  •  0
  • aalaap  · 技术社区  · 15 年前

    有没有办法在htaccess中设置重写规则,将查询字符串转换为分段URI?例如。

    http://domain.com/controller/method/?a=1&b=2&c=3
    

    应该被改写为

    http://domain.com/controller/method/a/1/b/2/c/3
    

    要做的就是移除?并更换&s和带a/的=s,但我不太确定这些数字是怎么形成的。htaccess。。。

    这并不重要,但我在Apache上使用PHP和CodeIgniter。

    3 回复  |  直到 15 年前
        1
  •  1
  •   duckyflip    15 年前

    你为什么不把这个逻辑放在你的CodeIgniter控制器里,而不是放在它里面呢。htaccess?

    检查 CodeIgniter's User Guide 用于处理查询字符串和URL。

        2
  •  0
  •   Jlbelmonte    15 年前

    如果你想在未来做这件事。htaccess你需要重写mod_。

    规则并不太难。我给你一个简单的例子,你需要调整正则表达式来满足你的需求。

    RewiteRule ^/([a-z]+)/([a-z]+)$ /method/?$1=$2
    
        3
  •  0
  •   Gumbo    15 年前

    这就是你可以做的:

    RewriteCond %{THE_REQUEST} ^GET\ /[^?]*\?
    RewriteCond %{QUERY_STRING} ^([^&=]+)=?([^&]*)&([^&=]+)=?([^&]*)&?(.*)
    RewriteRule ^ %{REQUEST_URI}/%1/%2/%3/%4?%5 [L]
    RewriteCond %{THE_REQUEST} ^GET\ /[^?]*\?
    RewriteCond %{QUERY_STRING} ^([^&=]+)=?([^&]*)&?(.*)
    RewriteRule ^ %{REQUEST_URI}?/%1/%2?%3 [L]