2014-04-12 422 views
0

有沒有辦法拒絕使用一個URL訪問文件,但允許使用另一個訪問?Htaccess和重寫/拒絕

例子:

實際的URL是www.domain.com/index.php但我想使用URL拒絕訪問,但我還是希望能夠以顯示使用文件www.domain.com /index.php/somestring

這是可能的嗎?

+0

「somestring」部分應該是一個GET變量嗎?你能給出一個小小的背景嗎?爲什麼你想阻止人們使用index.php? –

+0

不,這只是一個字母數字字符串,將被知道。 index.php將具有不同的名稱並且是我想要隱藏的登錄文件。 – WebandAvec

+0

是一個具體的還是有多個字符串可以代替「somestring」?如果有多個,字符串是否有特定的模式? –

回答

0

而不是產生.htaccess與存儲在數據庫中的字符串,你會過得更好寫.htaccess文件,以便它把「somestring」作爲GET變量。然後你會檢查數據庫中是否存在「somestring」,如果是,則顯示該頁面。否則,你做一個PHP頭重定向。

的.htaccess

RewriteRule ^index.php/([^/]*)$ /index.php?id=$1 [L] 

在你index.php第一,搶GET變量,檢查它在DB存在,如果存在,則顯示該頁面。否則,您可以使用標題重定向將用戶發送到其他頁面。

$id = $_GET['id']; // You will probably want to escape this 

然後,將整個頁面包裝在if語句中,並且只在數據庫中存在id時顯示頁面。

+0

不錯!謝謝 :-) – WebandAvec