【问题标题】:.htaccess - route to selected desination but change browser url.htaccess - 路由到选定的目的地,但更改浏览器 url
【发布时间】:2009-12-25 01:59:42
【问题描述】:

问题: 我愿意接受最初的请求。说它,/IWantToGoHere/index.php 但我想回到浏览器,/GoHere/index.php

要明确:
我实际上想将原始请求位置发送到请求的脚本,但是,我想向用户返回一个浏览器 URL 到另一个目的地。

代码:

RewriteEngine on
RewriteRule ^(.*)IWantToGoHere\/\.php$  GoHere/index.php [NC,C]
RewriteRule ^GoHere/index.php$ GoHere/index.php [R,NC]

注意事项: 我意识到上面的代码不起作用。我尝试了许多不同的调用。昨天我花了无数个小时尝试从我有限的 mod_rewrite 知识库中提取的每一个聪明的解决方案。根据我对 mod_rewrite 的理解,我认为它做不到。我理解它不是预处理的目的。至少不是我在 Apache 网站上能找到的任何东西。有人告诉我,如果我可以梦想它,它就可以实现:) 我想知道是否有人知道如何让它发挥作用。

您为什么要这样做?: 因为我愿意。不,我希望将 URL 返回给用户以进行进一步处理。

哎呀

【问题讨论】:

  • 我建议您重新考虑您的 URL 模式。想出一个好的“公共” URL 架构,并使用 mod_rewrite 将它们重写为您的“内部”架构。你说的是疯狂。
  • 你不需要转义/ 字符; Apache 不使用类似 Perl 的分隔符。但是. 需要转义。

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


【解决方案1】:

如果我正确理解了这个问题,要完成此操作,您需要从/IWantToGoHere/index.php 发送一个标头,在脚本完成执行后重定向到/GoHere/index.php。也就是说,如果您希望 Apache 仍然调用 IWantToGoHere 但返回到 GoHere。所以在处理IWantToGoHere 脚本的最后是这样的:

header('Location: /GoHere/Index.php');

哪个会正确重定向。

【讨论】:

  • pyborex1:是的,我想你会按照我的意思去做。嗯……我没想到。我想只要我的控制器(我使用的是 MVC 模式)发送了任何输出标头,这可能会起作用。让我试一试。感谢您的想法。
  • 好东西控制器不是视图,所以不应该输出任何内容。
猜你喜欢
  • 2016-09-09
  • 1970-01-01
  • 2018-10-17
  • 1970-01-01
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多