2011-02-25 60 views
1

如何使用php更改網址或其中的一部分?我丟失了我用過的代碼,現在我無法在網上找到答案。沒有重定向到PHP的更改URL?

我知道使用header('Location: www.site.com')得到重定向,但我怎麼才能顯示假的URL?

我現在不想使用mod_rewrite。

+1

你必須顯着改善你的問題,添加背景故事和你想得到的特定例子。否則它將被關閉。 – 2011-02-25 10:07:35

+2

因此,例如,您希望用戶在www.fakebank.example.com上,但認爲他們在www.theirbank.example.com上?沒有機會,對不起。 – Gareth 2011-02-25 10:12:38

+1

你想成爲**黑客**嗎? – 2011-02-25 10:15:13

回答

0

在執行服務器端的PHP中是不可能的。您對網址進行的任何更改都會觸發頁面加載。

我認爲它可能在JavaScript是可能的,但我真的懷疑這是一個好主意,如果你想只在用戶adressbar改寫爲URL,你做錯了什麼,還是壞;)

+0

不,我只是試圖不使用國防部重寫,而是使用PHP的SEO友好的網址...它眨了眨眼睛,一旦我可能是錯的。 你知道像使用mod_rewrite有辦法顯示一個像index.html的擴展名,但從index.php提供我想要做的與php – MrVon66 2011-02-25 10:17:22

+0

相同的是捕捉'404頁面未找到'你的想法? (在將未找到的'頁面'重定向到控制器的意義上) – Teson 2011-02-25 10:26:21

0

實際上你所要求的東西在使用PHP時是不可能的(儘管在JavaScript中你可以使用dreadful hashbang或者支持得不好的出血邊緣pushState)。

但是,在對另一個答案的評論中,你表示你的目標實際上是友好的,沒有mod_rewrite的URI。這不是爲了顯示與真實URI不同的URI,而是關於如何創建不基於一組簡單文件和目錄的URI。

這個通常用mod_rewrite實現(在PHP-land中),所以你應該堅持這種方法。

但是,您可以使用ScriptAlias(假設您使用Apache,其他Web服務器可能有不同的方法)。

例如ScriptAlias /example /var/www/example.php在Apache配置中。

然後在PHP腳本可以讀取$_SERVER['REQUEST_URI']找出請求什麼,並在適當的內容拉。

0

您可以通過PHP腳本名稱後添加目錄,使得有些搜索引擎友好的URL,這樣你的URL變爲:

http://yoursite.com/script.php/arg1/arg2

在的script.php:

<?php 

$args = preg_split('#/#', $_SERVER['PATH_INFO']); 

echo "arg1 = ".$args[1].", arg2 = ".$args[2]."\n"; 

?> 

如果使用一些htaccess的掛羊頭賣狗肉,那麼你就可以使的script.php看起來像別的東西(見@大衛的回答一個想法)

0

您CA ñ嘗試使用,

file_get_contents("https://website.com");

這不會重定向,但火API,你可以將其分配給上面的函數變量捕捉輸出。