gpt4 book ai didi

apache - 使用 mod_rewrite 重写查询字符串

转载 作者:行者123 更新时间:2023-12-02 00:44:34 25 4
gpt4 key购买 nike

在我的 MVC 应用程序中,我使用一个 uri 路由器来确定要使用的 Controller 和操作,并从 uri 中检测 GET 参数。我写的是它接受这两种形式:

http://localhost/controller/action/param1Name/param1Value
http://localhost/controller/action?param1Name=param1Value

现在我想做的是使用 mod_rewrite 将 ?p=v 形式重定向到 /p/v 形式(推理纯粹是装饰性的,GET形式使用 ?x=y 形式)。然而,我完全不知道该怎么做 - 我有一个想法,我需要使用 ${QUERY_STRING},但我不确定如何使用。

最佳答案

如果您真的想将 /controller/action?param1Name=param1Value 形式的请求重定向到 /controller/action/param1Name/param1Value,试试这个:

RewriteCond %{THE_REQUEST} ^GET\ /[^/]+/[^/]+\?[^\s]+
RewriteCond %{QUERY_STRING} ^([^=&]+)=([^&]+)&?(.*)
RewriteRule ^[^/]+/[^/]+.* /$0/%1/%2?%3 [N]
RewriteCond %{THE_REQUEST} ^GET\ /[^/]+/[^/]+\?[^\s]+
RewriteRule ^[^/]+/[^/]+.* /$0 [L,R=301]

但是如果你想要相反的方式:

RewriteRule ^([^/]+/[^/]+)/([^/]+)/([^/]+)(/.*) $1$4?$2=$3 [QSA]

关于apache - 使用 mod_rewrite 重写查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1179868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com