Apache 重定向到一个干净的 URL

Apache redirect to a clean URL

我有一个带有 Apache/2.2.15 的 centos 网络服务器。过去我有这样的登录页面 http://app.website.com/index.php?resource=Login 现在我更改了我的网站,我想将此页面重定向到新页面。我在虚拟主机中放入了这个重定向:

RedirectPermanent / https://newapp.website.com/

现在当我访问此页面时 http://app.website.com/index.php?resource=Login 我被重定向到此页面 http://newapp.website.com/index.php? resource=Login 并且我收到 404。 但我想将我重定向到干净的 url,没有 "index.php?resource=Login",只有 http://newapp.website.com/。我想解决这个问题,因为许多用户将登录页面添加为书签,现在他们收到 404 错误。我不会更改网站,我需要 apache 或 .htaccess 中的解决方案。谢谢

重定向指令将尾随路径查询字符串附加到其目的地Url,尝试mod_rewrite解决这个问题:

RewriteEngine On

RewriteCond %{THE_REQUEST} /index\.php\?resource=Login [NC]
RewriteRule ^  http://newapp.website.com/? [NC,L,R]

末尾的空问号很重要,因为它会丢弃 url 中的原始查询字符串。