htaccess重写规则中的简单正则表达式替换

Simple Regex replace in a htaccess rewrite rule

提问人:user1968854 提问时间:11/7/2023 更新时间:11/7/2023 访问量:33

问:

我有一个 URL,我需要删除 ?从 HTCacess 文件中。 改变: /index.php?option=com_content&view=article&id=28&Itemid=296&?item=1586257532 自: /index.php?option=com_content&view=article&id=28&Itemid=296&item=1586257532

我根据众多的谷歌搜索尝试了许多变体。 最后一个是: 重写规则 ^(.*)&?$ $1& [R=301, L]

有人能告诉我这是怎么做到的吗?

.htaccess 正则表达式替换

评论

0赞 CBroe 11/7/2023
RewriteRule 仅与 URL 的路径部分匹配。如果要检查任何查询字符串内容,则需要 RewriteCond。
0赞 user1968854 11/7/2023
我的错..没有添加两行。这是我在htaccess文件中的内容:'RewriteCond %{QUERY_STRING} ^$ RewriteRule ^(.*)&\?$ $1& [R=301, L]'
0赞 CBroe 11/7/2023
在这种情况下,您将要求查询字符串完全为空,但此处并非如此。而且您的规则模式仍然不匹配 - 您的 URL 路径中没有。&
0赞 user1968854 11/7/2023
谢谢SBroe..我对 htaccess/regex 几乎没有经验。这是我遇到的问题的一次性修复。如果您能给我我需要的 2 行,我将不胜感激。
0赞 user1968854 11/7/2023
我确实找到了这个..它不起作用,但根据@Cbroe响应,它看起来比以前更接近。你能纠正吗?RewriteCond %{QUERY_STRING} ^&\?([^&]*)重写规则 (.*) /$1&%1 [QSD,R,L]

答: 暂无答案