这个名字的最佳方法是什么?get =

时间:2010-01-20 13:18:06

标签: php

好吧假设我有php页面 将此名称命名为name.php?get =并获取名为get的变量 好 我怎么能让它看起来像那个名字?get =

5 个答案:

答案 0 :(得分:6)

如果您使用的是apache,mod_rewrite是一种方法。有一大堆mod_rewrite技巧here

答案 1 :(得分:3)

我认为你想重写URL客户端,包括mod_rewrite。

在您网站的路线中,创建一个名为.htaccess的文件,并将以下代码放入其中:

RewriteEngine on
RewriteRule ^name?get=(.*) /name.php?get=$1

现在,当您输入http://www.example.com/name?get=something时,它实际上会透明地映射到http://www.example.com/name.php?get=something

答案 2 :(得分:3)

在使用(或过度使用)mod_rewrite之前,我会认真重新考虑。

在我的几乎所有项目中,我在.htaccess中使用了一个简单的mod重写:

RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^.*$ ./

AddHandler php5-script .php

这告诉服务器将所有页面转发到/(index.php),除非文件存在。

在根目录中,我有一个名为“views”的文件夹,其中包含我使用的所有页面。例如。用于/ home的文件实际上是/views/home.php。但是,在index.php中,我有一个脚本可以解析用户的url,检查文件,并包含该脚本。

$page = substr($_SERVER['REQUEST_URI'], 1);
if(!$page) :
    header("Location: /home");
if(file_exists("views/$page.php")) :
    include "views/$page.php";
else :
    include "views/$page.php";
endif;

这会创建一个名为$ page的变量,用于存储域名后URL中所有内容的值。我在Request URI上使用substr()函数来删除URL上的尾随斜杠(/)。

如果变量为空,例如,如果用户只是在http://example.comhttp://example.com/,那么它会将它们转发到/ home,然后脚本会在其中检查home.php文件。 views文件夹。如果该文件存在,则包含该文件,并将其显示给用户。

否则,该脚本将只包含404页面,告诉用户该文件不存在。

希望这对您有所帮助,如果您需要任何进一步的解释,我很乐意为您提供帮助!

答案 3 :(得分:1)

据我所知,您无法删除文件扩展名,因为否则无法运行。换句话说,你无法改变:

name.php?get=

name?get=

但是如果你的意思是用查询字符串值创建链接,你可以用这种方式将它们放在超链接中:

<a href="name.php?get=whatever">Click here !!</a>

答案 4 :(得分:1)

如果您想使用变量'$ get'创建链接,那么您可以创建如下链接:

<a href="name.php?get=$get>Link</a>

或者,如果要获取查询字符串变量的值,可以使用:

$get = $_GET['get']

相关问题