.htaccess Mod Rewrite Rewrite URL异常行为,不断向显示的URL添加查询字符串

.htaccess Mod Rewrite Rewrite URL异常行为,不断向显示的URL添加查询字符串,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我是初学者 我想要什么 请求URL../activity/1415/abcdefgh/将被重写为../activity/gallery.php?k=abcdefgh 但仍然将访问者的URL显示为../activity/1415/abcdefgh/ 但是当我尝试时,URL../activity/1415/abcdefgh/变成了../activity/1415/abcdefgh/?k=abcdefgh 页面显示良好,但我想隐藏查询 基本上发生了什么 链接显示:http://localhost/a

我是初学者

我想要什么
  • 请求URL
    ../activity/1415/abcdefgh/
    将被重写为
    ../activity/gallery.php?k=abcdefgh
  • 但仍然将访问者的URL显示为
    ../activity/1415/abcdefgh/
  • 但是当我尝试时,URL
    ../activity/1415/abcdefgh/
    变成了
    ../activity/1415/abcdefgh/?k=abcdefgh

    页面显示良好,但我想隐藏查询


    基本上发生了什么
  • 链接显示:
    http://localhost/activity/1516/iolfpqwx
  • 点击链接
  • 地址栏上写着:
    http://localhost/activity/1516/iolfpqwx/?key=iolfpqwx
    ,这是我不想要的

  • 我的整个
    .htaccess
    位于
    活动
    目录中:
    我的规格:
    • 使用Apache的Windows上的XAMPP

    我所知道的
    • 我没有在测试服务器上设置任何重定向规则,因此我不相信我有任何
      [R]
      标志
    • 我有一个类似的
      .htaccess
      在一个相邻的目录中,代码是
      RewriteRule^settings/([^/]+)/*$index.php?p=settings&s=$1[L,QSA,NC]
      ,它没有显示查询字符串

    我在谷歌上搜索了我的问题,但找不到解决方案。请提供帮助。

    您当前的重写规则应该是正确的。您以前是否有
    [R]
    标志?我这样问是因为浏览器经常主动缓存重定向,您可能会看到过时的重定向。如果你在不同的浏览器或private/icognito窗口中尝试,你会得到相同的行为吗?@MichaelBerkowski我提出了一个新的测试路径,但问题仍然存在。也许我不应该用mod_重写?
    RewriteEngine On
    RewriteRule ^(\d{4})/(\w{8,})(?:/([\w\s]+)?)?$ gallery.php?key=$2 [L,QSA,NC]