如何在没有.php扩展名的情况下创建domain.com/?stringhere

时间:2010-05-05 22:56:47

标签: php query-string

我想创建如下链接:

http://www.myurl.com/?IDHERE

我想能够做的是能够转到上面的链接,然后拉出什么? (在这种情况下为IDHERE)并且能够使用该信息执行MySQL查找并返回页面。

有人能指出我正确的方向吗?请知道这是使用PHP而不是ASP

6 个答案:

答案 0 :(得分:3)

此处的问题不在于您的脚本语言,而在于您的Web服务器设置。我将通过他们的Apache名称来引用它们,但这些功能应该可以在大多数Web服务器中使用。

您可能想要使用三种功能:

1)内容协商(mod_negotiation),它允许您的Web服务器按指定的顺序尝试指定的扩展列表,例如:http://example.com/foo可能是http://www.example.com/foo.htmlhttp://example.com/foo.php < / p>

2)DirectoryIndex,告诉Web服务器当客户端请求http://example.com时,它应该按顺序查找指定的文件列表,这样它可能会服务器http://example.com/index.html或http:/ example的.com / index.php的

3)mod_rewrite,它允许您基本上重写服务器接收的URL格式。这样您就可以执行将http://example.com/foo/bar/baz翻译为http://example.com/foo/bar.php?page=baz

等操作

其余部分由正常的后端脚本代码完成。

答案 1 :(得分:1)

在该目录中创建一个默认的PHP文件,当没有指定文件名时(例如index.php)将加载该文件。在PHP脚本中,您可以从变量$_SERVER['QUERY_STRING']获得问号之后的部分。

答案 2 :(得分:0)

在您网站的主要index.php中执行以下操作:

list($id) = array_keys($_GET);
// right now, $id represents the ID you're looking for.
// Do whatever you want with it.

答案 3 :(得分:0)

在链接,表单或其他内容中 - index.php?id = someid

在index.php文件中:

$_GET['id'] = $id

现在你可以使用它了:

e.g。

echo $id;

由于它是您的默认页面,因此无需扩展名即可使用。

答案 4 :(得分:0)

list($id) = array_keys($_GET);
// right now, $id represents the ID you're looking for.
// Do whatever you want with it.

这正是我所寻找的,但现在我只需创建一些通知,如果没有任何东西。谢谢大家的回复。

答案 5 :(得分:0)

我会尽可能使用.htaccess文件来解决它。

使用内容

在主目录中创建.htaccess文件
RewriteEngine on
RewriteRule cat/(.*)/(.*)/(.*)/$ /$1/$2.php?$3

应将“example.com/foo/bar/baz”翻译为“example.com/foo/bar.php?page=baz”