我正在尝试向我的 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并将 URL 重写/重定向到test.dev/part/foo,bar - 即使这显示了正确的内容,但这不是我希望网址看起来像什么。
有没有办法考虑'part'之后的url中的内容,如果找到逗号,删除逗号和它后面的任何内容?
我仍然需要我的代码读取 'foo' 和 'bar' 并显示这两个选项的正确内容,但 url 显示test.dev/part/foo(因为 foo 是第一个网址)。