fl3*_*3x7 1 php .htaccess redirect get form-submit
有关使用htaccess重定向的问题.在GET搜索表单提交中,我得到以下网址:
http://www.example.com/search/?criteria=foo&filter=all&date=all&submit=search&page=1
Run Code Online (Sandbox Code Playgroud)
以上工作正常.然后我在我的htaccess中有这个重写规则:
RewriteRule ^(.*)/(.*)/(.*)/(.*)/(.*)/$ search.php?criteria=$2&filter=$3&date=$4&submit=$1&page=$5 [L]
Run Code Online (Sandbox Code Playgroud)
以上也行得正常.它允许我为我的搜索结果使用以下结构:
http://www.example.com/search/foo/title/all/1/
Run Code Online (Sandbox Code Playgroud)
现在我的问题是,当我点击提交时,我希望它使用新的clearner url结构,但它使用带有问号和等号的杂乱的一个.现在自动我想也许我必须在PHP中进行重定向,但是如果我可以用htaccess来做,我会更高兴,因为它意味着更清晰的代码.
我也明白我可以通过截取点击并创建seo友好网址来使用JavaScript来做到这一点,但如果他们是htaccess的方式,我会更喜欢.
希望你明白我想要实现的目标,非常感谢你的阅读,
fl3x7
ps我对htaccess很新,所以如果你能解释/指导等会很棒
你不能单独使用.htaccess.
您可以使用javascript(拦截onclick事件,使用用户输入的数据构建url字符串,然后将页面重定向到此URL),但考虑到javascript在客户端运行,这不是真的可靠.
我的建议是使用PHP.过程是一样的,但我会使用POST而不是GET作为表单的方法.在呈现页面之前,检测$_POST数据并构造$url使用它.然后将页面重定向到该页面$url,使用header("Location: ".$url);它最好exit();在此之后使用,以确保下面的代码不会在重定向时执行.
| 归档时间: |
|
| 查看次数: |
3855 次 |
| 最近记录: |