好吧假设我有php页面 将此名称命名为name.php?get =并获取名为get的变量 好 我怎么能让它看起来像那个名字?get =
答案 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.com或http://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']