2011-07-18 69 views
-1

我有一個網站,說http://example.com訪問。 爲此,我有幾個PHP腳本,如index.php,intro.php,faq.php,contact.php等。 所以一個典型的用例看起來是這樣的: 用戶去http://example.com,這將是http://example.com/index.php - >然後點擊「簡介」並被重定向到http://example.com/intro.php只顯示頂部的網站

雖然這一切都很好,但我想知道是否有辦法完全隱藏PHP腳本的名稱,所以無論用戶是否在index.php,intro上,URL總是會讀取爲http://example.com/。 php,faq.php等 使用RewriteRules似乎不是一種好的方式,因爲它基本上是做另一個方向:爲用戶提供一個特定URL的輸入(例如使得「.php」可選)。 但是,我希望用戶只能獲取該網站的網址,而不是其中的各個腳本。

類似實際上可能與個別腳本的東西或想這需要所有的單個腳本被合併成一個,然後使用結構,如:

if($_POST['destination'] == "intro") 
{ 
    //DO ALL THE Introduction MARKUP 
} 

謝謝。

最好。

+6

該網站的網址_is_,你有什麼特別的原因,使其很難對你,搜索引擎,大家關心的使用您的網站? – Wrikken

+0

不是很好的舊框架技術? – dknaack

+0

@Wrikken:實際的網站/服務由一系列輸入組成,我已將它們分組爲單獨的腳本。因此,用戶通過了解個人URL而沒有任何好處,事實上,他/她必須從頭開始,不能簡單地轉到中間URL。因此,只顯示「主要」URL可以更好地控制(用戶不太可能手動輸入「/faq.php」),並且在這種情況下,更漂亮。 – Shadow

回答

2

你可以用一個整版的iframe,並在iframe裝載intro.php。這樣,用戶停留在同一頁面上,但iframe中的頁面發生更改。

0

的一種方式(工作,但不是很好)是包括在其中吸取這些腳本的特定頁面的index.php和通話功能的所有腳本。這個調用必須依賴球頂端變量。

+0

謝謝,但更仔細地閱讀我的問題會發現我​​已經考慮過這個問題。 – Shadow

+0

o,對不起。無論如何,這不是一個好主意 – k102

0

當用戶點擊鏈接時,您可以使用AJAX調用來加載新內容。然後,你可以建立自己的網站像往常一樣,但增加了與此類似(使用jQuery)的腳本:

$(function() { 
    $('a').click(function() { 
     $.get($(this).attr('src'), function(data) { 
      document.write(data); 
     }); 
     return false; 
    }); 
)}; 

我還沒有試過這種代碼,但沿着這條路線的東西應該工作。

這當然不是在不支持JavaScript的瀏覽器,你將需要照顧的形式以另一種方式,這樣一整頁的iframe可能是一個簡單的解決方案。

0

鑑於你進一步的解釋,我會跟單幹淨的index.php去,和其他腳本包括根據需要(我想即使他們在您的文檔根目錄以外的,使他們不能直接意外或訪問,上目的):

的index.php:

<?php 
$action = isset($_POST['action']) ? $_POST['action'] :'index'; 
switch($action){ 
     case 'intro': 
      require '../pages/intro.php'; 
      break; 
     case 'somethingelse': 
      require '../pages/somethingelse.php'; 
      break; 
     case 'index': 
     default: 
      require '../pages/index.php'; 
} 
?> 

甚至可能稍微與可能的頁面列入白名單的陣列優化。這使您的原始index.php保持整潔,仍然有可能在專用文件中執行所有更復雜的內容。沒有真正的需要爲JavaScript(它不需要的功能,但可以可以根據需要使用)或僞裝隱藏的網址(由於大多數時間不欺騙搜索索引器或誰只是想用最少的關於html的知識直接使用url)。