2009-12-06 81 views
1

好吧,我正在創建一個由單個用戶管理的調查問卷應用程序。在那裏,他可以創建多個問卷,每個問卷具有不同的名稱和一組設置(註冊用戶,問題,數據等)。目前,通過轉到/index.php?t=Questionnaire%20Name,非管理用戶(測試的接受者)可以訪問不同的測試。很明顯,這不是給用戶最好的界面。我希望用戶能夠通過訪問/ QuestonnaireName來訪問該測試。我覺得這可以用mod-rewrite來完成,但我不知道如何使用它或從哪裏開始。我用JS,PHP和MySQL編寫了整個代碼。任何幫助表示讚賞。謝謝。使用URL內容發送數據(發佈或獲取)到PHP頁面

回答

1

這裏有一個例子,讓你去:

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?$1 

將它放在一個名爲.htaccess的文件中,位於index.php所在的目錄中。現在,您撥打的所有內容都將被路由到index.php,並且您可以使用$_SERVER['QUERY_STRING']獲取該網址。然後你可以隨意做任何你想做的事情。在index.php?

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?t=$1 

注意的t=

替代的方式,爲您節省作出編輯index.php文件。現在一切都可以從$_GET['t']找到,但我不能保證這將是萬無一失的,因爲我自己並沒有使用這種方法。測試一下,看看它是否適合你。

編輯

編輯以允許訪問物理目錄。

+0

謝謝,這工作幾乎完全符合我的要求。真的很酷。但是,當你嘗試訪問/管理時,顯然mod_rewrite會捕獲它,並將你發送到index.php。有什麼方法可以將if語句放入? – fishman

+0

此外,當我嘗試訪問/管理器時,URL欄報告/ manager /?t = manager。這不會發生在我嘗試過的其他任何事情上,而/ manager是唯一的子目錄。 – fishman

+0

我發現瞭如何做到這一點。所需要的是另一個RewriteCond,與另一個RewriteCond完全相同,但使用-d而不是-f。 – fishman

相關問題