【发布时间】:2013-09-17 08:49:50
【问题描述】:
我正在尝试向我的 htaccess 文件添加一些重写规则,但我遇到了一些问题。
我目前有以下设置(位来自不同的网站,如果不一致,我很抱歉!):
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /search\.php\?part=([^&]+)\ HTTP/
RewriteRule ^search\.php$ http://test.dev/part/%1? [R=301,L]
RewriteRule ^part/(.+)$ /search.php?part=$1 [L]
这使我可以转到 test.dev/search.php?part=foo 并将 URL 重写/重定向到 test.dev/part/foo -这工作正常,并向我显示正确的内容。
但是,我也可以转到 test.dev/search.php?part=foo,bar 并将网址重写/重定向到 test.dev/part/foo,bar - 即使这显示了正确的内容,这也不是我想要的 url 的样子。
有没有办法考虑 url 中 'part' 之后的内容,如果找到逗号,则删除逗号及其后面的任何内容?
我仍然需要我的代码读取 'foo' 和 'bar' 并显示这两个选项的正确内容,但 url 显示 test.dev/part/foo (因为 foo 是 url 中的第一个)。
【问题讨论】:
标签: php apache .htaccess redirect mod-rewrite