2010-09-27 49 views
0

我有一個PHP網站有兩個目錄:一個應用程序目錄和一個公共目錄。幫助與PHP的URL

問題是用戶必須訪問www.domain.com/public才能訪問該網站,但我需要請求www.domain.com/將用戶重定向到www.domain.com/public

所以我的問題是什麼是這樣做的最好方法?

+0

您不用PHP來做這件事。 – Incognito 2010-09-27 19:13:28

回答

3

我會用.htaccess重寫規則來做到這一點。這確保用戶始終被重定向,即使index.php沒有被請求。像這樣的東西應該適合你:

RewriteCond %{REQUEST_URI} !public/ 
RewriteRule ^(.*)$ public/$1 [L] 
+1

我們不知道他在用什麼網頁服務器。 – Incognito 2010-09-27 19:23:44

+0

@ user257493:Apache 2.2.14和PHP 5.3.1 – 2010-09-27 19:26:47

+2

@ user257493我認爲這是Apache,因爲他提到了PHP,沒有別的。 – alexn 2010-09-27 19:32:52

0

你可以用PHP重定向。裏面在主文檔根目錄的index.php您:

<?php 

header('Location: public'); 
die(); 

?> 
+0

爲什麼'死();'就在劇本退出前呢? – meagar 2010-09-27 19:06:06

+1

是的,最後,死亡是自然而然的。 – Archimedix 2010-09-27 19:10:43

+0

有效的點。這只是一個習慣過程,因爲如果在有條件的'header()'下面有更多的代碼,調用'die()'是個好習慣。當然,在這種情況下,這絕對沒有意義。 – chigley 2010-09-27 19:12:04

0

把一個index.php文件在/含:

<?php 
header('Location:http://domain.com/public'); 
?> 
2

多種方式 - 的.htaccess,或者一個簡單的

<?php header('Location:http://www.domain.com/public'); ?>

會做的伎倆,如果你不需要直接從domain.com訪問任何東西明確

1

你應該通過你的web服務器(IIS/Apache /其他)處理這個問題,因爲它更適合這種任務。 SO對於各種網絡服務器的URI重定向有很多答案。另外,如果你讓人們遠離你的「應用程序目錄」(你似乎指出你的web根目錄),你應該重新設計,如果你的目的是讓人們擺脫困境該文件夾:這是一個安全風險。

1

你也可以在.htaccess文件中解決它。 只需創建一個「重定向」規則:

Redirect 301//public/