使用URL内容将数据(post或get)发送到PHP页面

使用URL内容将数据(post或get)发送到PHP页面,php,mysql,apache,mod-rewrite,Php,Mysql,Apache,Mod Rewrite,好的,我正在创建一个由单个用户在/manage上管理的问卷应用程序。在那里,他可以创建多个问卷,每个问卷都有不同的名称和设置(注册用户、问题、数据等)。目前,非管理用户(参加测试的人)可以通过访问/index.php?t=问卷%20Name访问不同的测试。显然,这不是给用户的最佳界面。我希望用户能够通过转到/QuestonnaireName访问该测试。我觉得这可以通过mod rewrite来完成,但我不知道如何使用它,也不知道从哪里开始。我已经用JS、PHP和MySQL编写了整个代码。感谢您的帮

好的,我正在创建一个由单个用户在/manage上管理的问卷应用程序。在那里,他可以创建多个问卷,每个问卷都有不同的名称和设置(注册用户、问题、数据等)。目前,非管理用户(参加测试的人)可以通过访问/index.php?t=问卷%20Name访问不同的测试。显然,这不是给用户的最佳界面。我希望用户能够通过转到/QuestonnaireName访问该测试。我觉得这可以通过mod rewrite来完成,但我不知道如何使用它,也不知道从哪里开始。我已经用JS、PHP和MySQL编写了整个代码。感谢您的帮助。谢谢。

您必须使用mod_rewrite:

使用示例(是德语,我没有找到更好的解决方案):
您必须使用mod_rewrite:

使用示例(是德语,我没有找到更好的解决方案):

以下是一个让你行动起来的例子:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1
将其放入一个名为
.htaccess
的文件中,该文件与index.php位于同一目录中。现在,您调用的所有内容都将路由到index.php,您可以通过
$\u服务器['QUERY\u STRING']
获得url。然后你可以自由地用它做任何你想做的事

另一种方法是避免您对index.php进行编辑:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?t=$1
注意
index.php?
后面的
t=
。现在可以从
$\u GET['t']
中找到所有内容,但我不能保证这是万无一失的,因为我自己没有使用过这种方法。测试一下,看看它是否适合你

编辑


编辑以允许访问物理目录。

以下是一个示例:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1
将其放入一个名为
.htaccess
的文件中,该文件与index.php位于同一目录中。现在,您调用的所有内容都将路由到index.php,您可以通过
$\u服务器['QUERY\u STRING']
获得url。然后你可以自由地用它做任何你想做的事

另一种方法是避免您对index.php进行编辑:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?t=$1
注意
index.php?
后面的
t=
。现在可以从
$\u GET['t']
中找到所有内容,但我不能保证这是万无一失的,因为我自己没有使用过这种方法。测试一下,看看它是否适合你

编辑


编辑以允许访问物理目录。

谢谢,这几乎完全符合我的要求。真的很酷。然而,当您尝试访问/管理时,显然mod_rewrite会捕获它并将您发送到index.php。是否有一种方法可以将if语句放入?此外,当我尝试访问/manager时,URL栏会报告/manager/?t=manager。我尝试过的其他任何东西都不会发生这种情况,并且/manager是唯一的子目录。我发现了如何实现这一点。所需要的是另一个重写秒,与另一个完全相同,但是用-d,而不是-f。是的,忘了添加那个。编辑。谢谢,这几乎完全符合我的要求。真的很酷。然而,当您尝试访问/管理时,显然mod_rewrite会捕获它并将您发送到index.php。是否有一种方法可以将if语句放入?此外,当我尝试访问/manager时,URL栏会报告/manager/?t=manager。我尝试过的其他任何东西都不会发生这种情况,并且/manager是唯一的子目录。我发现了如何实现这一点。所需要的是另一个重写秒,与另一个完全相同,但是用-d,而不是-f。是的,忘了添加那个。编辑。