【发布时间】:2011-11-14 00:36:43
【问题描述】:
关于使用 htaccess 进行重定向的问题。在 GET 搜索表单提交中,我得到以下网址:
http://www.example.com/search/?criteria=foo&filter=all&date=all&submit=search&page=1
以上工作正常。然后我的 htaccess 中有这个重写规则:
RewriteRule ^(.*)/(.*)/(.*)/(.*)/(.*)/$ search.php?criteria=$2&filter=$3&date=$4&submit=$1&page=$5 [L]
以上也可以正常工作。它允许我在搜索结果中使用以下结构:
http://www.example.com/search/foo/title/all/1/
现在我的问题是,当我单击提交时,我希望它使用新的更清晰的 url 结构,但是它使用带有问号和等号的更混乱的结构。现在我自动在想,也许我必须在 PHP 中进行重定向,但是如果我可以使用 htaccess 来做,我会更开心,因为这意味着代码更简洁。
我也知道我可以通过拦截点击并创建对 seo 友好的 url 来使用 JavaScript 来做到这一点,但如果他们是使用 htaccess 的方式,我更愿意这样做。
希望您了解我想要实现的目标,非常感谢您的阅读,
fl3x7
p.s 我对 htaccess 很陌生,所以如果你能解释/指导等,那就太好了
【问题讨论】:
-
是否有您不能的原因,例如,POST 到
search并让它将您重定向到search/foo/title/all/1/? -
@stslavik 感谢您的评论。这就是我最初想做的事情,但是我只是想如果我可以使用 htaccess 来完成它会更酷,如果他们无法使用 htaccess 来完成,我很可能会这样做:)
-
.htaccess 仅在浏览器发送请求后处理请求。由于浏览器将 GET 字符串组合为
?key=val[&key2=val2[...]],因此在将 URL 写入浏览器时,htaccess 甚至都没有发挥作用。对不起,伙计。
标签: php .htaccess redirect get form-submit