2011-06-26 74 views
2

我需要隱藏完整路徑和不久顯示:重寫規則來隱藏URL

www.site.com/this/is/path/to/hide/page.php - >www.site.com

任何想法與的.htaccess阿帕奇重寫規則做??


如果鍵入www.site.com我想在WWW開放index.php(中/),
但如果我去/hidden/path我想打開file.php(以隱藏/路徑)
mantaining瀏覽器網址.site.com


編輯
我想在瀏覽器欄www.site.com看,我想在/this/is/path/to/hide/page.php打開頁面。

感謝

+0

如果不使用URL/URI,應該如何定位/標識資源? – Gumbo

+0

不能。**如果我打電話給你的名字,你能爲我提供什麼嗎?** – ssapkota

回答

3

正如我在:How does url rewrite works?中所解釋的那樣,每次重寫都會觸發重新調用URL的新調用。 (HTTP 3xx代碼)。

因此,客戶端將要求www.site.com/this/is/path/to/hide/page.php,將被重定向到www.site.com,並將作爲普通用戶提供給索引頁面。

無法告訴客戶端在瀏覽器欄中顯示一個URL而不是另一個URL,客戶端瀏覽器將始終發出新的請求。 (或者你可以冒充例如任何網站)

如果你不反對使用一個cookie,或者可以使用環境變量你可以做一些事情,如:

RewriteRule this/is/path/to/hide/page.php/[co:knowHiddenPath=true] 

的環境變量與E相同的語法而不是co

(見http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html的cookie信息)

你的索引頁應該再檢查這個cookie /變量服務於隱藏​​的頁面或不是。

另一個解決方案是使用密碼訪問您的文件。所以即使有人知道URL,他也不會訪問該文件。默默無聞的安全是不存在的。

+0

好的,很明顯。謝謝。 – elp

0

我可以相信,這樣做有Alias

Alias//this/is/path/to/hide/page.php 

這個指令需要在你的<VirtualHost>

+0

現在你唯一要表現的就是文件:'page.php'。 **是的路徑仍將隱藏。** – ssapkota

+0

VirtualHost不在htaccess中,爲true?我需要做什麼類型的文件?哪裏? – elp

0

這將使用mod_rewrite的,你可以把這個成您的.htaccess

# Activate Rewrite Engine 
RewriteEngine On 

# Home page rewrite rule 
RewriteRule ^$ /this/is/path/to/hide/page.php [QSA,L] 

這隻有在您訪問網站根目錄時纔會有效。 http://www.example.com/

+0

@LazyOne好的,但我需要做的恰恰相反!我去/hidden/path.php,我想看到www.mysite.com。謝謝。 – elp

+0

@Paska你是什麼意思的「看到」?你想**重定向到**根 - 例如你在瀏覽器中輸入該路徑,它會將你重定向到根目錄,你會在瀏覽器欄中看到「www.mysite.com」?或者您希望該網址在地址欄中保持不變(與您鍵入的內容相同),但它會向您顯示(在瀏覽器中)主頁? – LazyOne

+0

對不起,我想在瀏覽器欄中看到www.site.com,我想在/hidden/path.php打開頁面。 – elp