2009-12-25 50 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