【问题标题】:Is there a way to redirect from a URL to a page with parameters without changing the URL?有没有办法在不更改 URL 的情况下从 URL 重定向到带有参数的页面?
【发布时间】:2021-06-12 02:23:27
【问题描述】:

您好,我正在创建一个网站,我发现自己正在编辑.htaccess 文件。我已经多次尝试从/isexistinguser 之类的URL 重定向到/api/usermanager?type=1,而不更改浏览器中可见的地址,但仍然找不到解决方案。有人可以帮助我吗?

这是我尝试过的:

RewriteEngine on
RewriteCond %{THE_REQUEST} /isexistinguser [NC]
RewriteRule ^ /api/usermanager?type=1 [NC,L,R]

这里的问题有两个:

  • 重定向时地址更改
  • 任何包含/isexistinguser 的URL 都会被考虑在条件中,例如/isexistinguserblabla

谢谢!

【问题讨论】:

  • 你能分享一下你到目前为止所尝试的吗?谢谢
  • 这是不可能的。相反,您可以做的是在客户端中保留一个页面框架(因此重新加载整个页面)并执行内部 ajax 请求以获取该 URL 并在仍加载的页面中可视化响应。
  • 我希望我对这个更改更清楚@AmitVerma
  • 我想我不明白你对我的建议。但是我希望这个重定向对用户不可见。@arkascha

标签: .htaccess url redirect mod-rewrite url-rewriting


【解决方案1】:

对于您显示的示例,您能否尝试以下操作。 请确保在测试您的 URL 之前清除您的浏览器缓存。

RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(isexistinguser)$ api/usermanager?type=1 [NC,L]

【讨论】:

  • 感谢您的解决方案,但仍然出现第二个问题。我希望它不适用于/isexistinguserblabla。 @RavinderSingh13
  • @IvanCisternino,对于任何 URL,例如 http:localhost:80/isexistinguserhttp:localhost:80/isexistinguserblaba URL,因为我正在检查 URL 应该以 isexistinguser 开头的条件,理想情况下它应该可以工作,请让我知道同样谢谢.
  • 它有效,但我希望检查不仅仅是开始,它也应该像这样结束。 url 还必须以 /isexistinguser 结尾,并且后面必须没有任何内容 @RavinderSingh13
  • @IvanCisternino,好的,请您检查一下我的编辑,如果这对您有帮助,请告诉我?谢谢。
  • 我改变了你上一个解决方案,我做到了,非常感谢!也许你可以把它放在你的答案中来帮助别人。 RewriteRule ^(isexistinguser)$ api/usermanager?type=1 [NC,L]@RavinderSingh13
猜你喜欢
  • 2013-10-12
  • 2018-01-18
  • 1970-01-01
  • 1970-01-01
  • 2021-06-26
  • 2020-05-07
  • 2018-10-20
  • 1970-01-01
相关资源
最近更新 更多