2009-12-06 36 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

相关问题