参数作为网址的一部分而不是问号之后

时间:2016-05-03 12:11:28

标签: php url web

我想知道我们是否可以实现这样的目标: example.com/apps?id='blahblah'转换为example.com/apps/id/blahblah即。参数成为页面本身。我想为每个id创建单独的url但动态。这可能是在PHP或任何其他解决方法。

2 个答案:

答案 0 :(得分:1)

你需要使用.htaccess来实现这一点。

.htaccess基本上将网址重写为原始位置。所以你要在你的问题中做的就是这样:

RewriteEngine on
RewriteRule apps/id/(.*?)$ apps?id=$1

答案 1 :(得分:1)

你可能会被低估,因为" mod重写在php"已经广泛记录了教程和文章。尝试在这里或在Google上搜索它,你会发现很多结果。

无论如何,如果你不能或不能使用Apache的mod_rewrite,你可以通过解析HTTP请求并相应地处理纯PHP中的相同操作。

例如

$request_path = $_SERVER['PATH_INFO'];
$request_path = explode("/", $request_path);

// example.com/apps.php/id/blahblah
// $request_path[0] => "example.com"
// $request_path[1] => "apps.php"
// $request_path[2] => "id"
// $request_path[3] => "blahblah"

注意我向.php添加了apps个扩展名。如果您希望隐藏.php扩展程序,则无论如何都必须使用mod_rewrite

从这里开始,您可以使用$request_path来确定请求的内容。