2009-12-25 56 views
1

问题: 我想接受原始请求。说了,/IWantToGoHere/index.php 但我想返回到浏览器,/GoHere/index.php.htaccess - 路由至选定的目标,但更改浏览器网址

要明确:
其实我是想和原始请求的位置下降到要求的脚本,但是,我想要将用户的浏览器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返回给用户进行进一步处理。

weez

+0

我建议你重新考虑你的URL模式。提出一个好的“公共”URL模式,并使用mod_rewrite将它们重写为“内部”模式。你说的是疯狂。 – gahooa 2009-12-25 02:33:59

+0

您不需要转义'/'字符; Apache不使用类似Perl的分隔符。但'''需要逃脱。 – Gumbo 2009-12-25 16:27:14

回答

2

如果我理解正确的问题,要做到这一点,你需要从/IWantToGoHere/index.php一旦脚本执行完毕重定向到/GoHere/index.php发送一个头。也就是说,如果您希望Apache仍然呼叫IWantToGoHere,但返回到GoHere。因此,在处理结束为IWantToGoHere脚本是这样的:

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

这将正确地重定向。

+0

pyborex1:是的,我想你会跟随我要去的地方。嗯...我没有想到这一点。我想只要我的控制器(我使用的是MVC模式)已经发送了任何输出头文件,这可能会工作。勒梅给它一个镜头。感谢这个想法。 – weezy 2009-12-25 02:29:18

+0

好东西控制器不是视图,所以不应该输出任何内容。 – Matchu 2009-12-25 03:02:12